public void main(String [] args)java main方法签名无效?

时间:2016-06-30 13:50:48

标签: java static

我通过记事本

编译了以下代码
javap MainClass

我没有使用静态关键字和上面的代码执行,但是当我做了

class MainClass {
MainClass();
  public static void main(java.lang.String[]);
}

在命令提示符下,我得到了以下输出,

public void main(String args[])

关键字已自行添加,

也是如此
public String filterMessage(String actionIn, String messageIn) {
        String message = null;
        try{
            switch (actionIn) {
            //EDIT: this calls the other class causing parseexception
            case "search":
                message = (srvmt.SearchEngine(messageIn));
                break;
            default:
                message = messageIn;
                break;
            }

        }catch (ParseException e) {
            System.out.println("Encountered parse exception");
            e.printStackTrace();
        }catch(IOException ioException){
            ioException.printStackTrace();
        }
        return message;
    }

也被视为有效签名?

1 个答案:

答案 0 :(得分:5)

JLS Sec 12.1.4中所述:

  

方法main必须声明为publicstaticvoid。它必须指定一个形式参数(第8.4.1节),其声明的类型是String的数组。

我想你可能一直在看这个类的过时版本;当我尝试反编译代码时,static尚未添加。

Compiled from "MainClass.java"
class MainClass {
  MainClass();
  public void main(java.lang.String[]);
}