可能重复:
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