我们可以在Java中使用public static void main(String [] [] args)
2d数组吗?
答案 0 :(得分:5)
有三种方法可以定义main方法的参数:
经典Java风格
public static void main(String[] args)
C风格
public static void main(String args[])
New-school(JDK1.5之后)Java风格
public static void main(String ... args)
所有这些都是等效的,只有在找到带有这些签名之一的方法时,VM才会启动您的类。
实际上,它们并不完全相同,只有一个小区别:当通过反射访问时,Method.isVarArgs()
只会为最后一个方法返回true。但它们仍然具有相同的签名(名称,参数类型,返回类型,可见性)
答案 1 :(得分:4)
不,你不能。如何指定命令行参数以适应二维数组? main(..)
方法由java运行时调用,该运行时传递调用程序时指定的命令行参数。
答案 2 :(得分:3)
当然,您可以声明自己的主方法采用2d数组,但JVM在启动时不会自动执行,因为它会查找带签名的方法:
public static void main(String[] args)
有关主要方法的详细信息,请参阅Hello World tutorial。
答案 3 :(得分:1)
其他问题指出了两个主要事实:
因此,如果你真的想要一个接受2D数组的入口点,你应该这样做:
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
}
请注意,在这种情况下,您不必将第二个方法声明为public,但如果您确实愿意,仍然可以执行此操作。
答案 4 :(得分:0)
不,你不能。因为main(String [] args)方法是JVM的特殊方法,它正在寻找
使用此签名的主要方法:
public static void main(String[] args) {
}
答案 5 :(得分:0)
没有二维数组不起作用。当你使用String时,args []意味着你要向编译器发送字符串参数数组,但你不能使用二维数组。 你将得到Class not found exception.But文件将编译。