可能重複:
how to use (String [] [] args) in java我們可以使用public static void main(String [] [] args)嗎?
我們可以使用public static void main(String [] [] args)
在Java中的二維數組?
可能重複:
how to use (String [] [] args) in java我們可以使用public static void main(String [] [] args)嗎?
我們可以使用public static void main(String [] [] args)
在Java中的二維數組?
不,你不能。你將如何指定命令行參數以適應二維數組? main(..)
方法由java運行時調用,該運行時傳遞程序調用時指定的命令行參數。
當然,你可以聲明,需要一個二維數組自己的主要方法,但它不會自動在啓動時JVM,因爲它看起來與一個簽名的方法執行:
有關主要方法的更多信息,請參閱Hello World tutorial。
沒有你can't.because主(字符串[] args)方法是JVM特殊的方法,它在尋找
與此簽名主要方法:
public static void main(String[] args) {
}
有三種可能的方式您可以定義的主要方法的參數:
經典的Java風格
public static void main(String[] args)
空調風格
public static void main(String args[])
新學校(後JDK1.5)的Java風格
public static void main(String ... args)
所有這些都是等價的,而虛擬機纔開始你的類如果它找到具有這些簽名之一的方法。
其實,他們都不太等價的,有一個小的差異:當通過反射訪問,Method.isVarArgs()
將只爲最後一個方法返回true。但是他們仍然都有平等的簽名(名稱,參數類型,返回類型,能見度)
兩個主要的事實,其他問題指出:
所以,如果你真的想接受一個二維數組的切入點,你應該這樣做:
public static void main(String[] args) {
String[][] args2d;
// some crazy code that parses args and initializes args2d with a 2D array
main(args2d);
}
public static void main(String[][] args) {
// your actual entry point here
}
請注意,您不必在這種情況下申報的第二個方法公開,但如果你真的想要的話,你仍然可以做到。
沒有二維數組將不會工作。當您使用String args []意味着您要將字符串參數數組發送到編譯器,但不能使用二維數組。 您將獲得Class not found exception,但該文件將被編譯。
當你嘗試時會發生什麼? – 2011-02-01 08:37:43