有趣的主要方法

问题描述:

我周围的*阅读关于一种称为'D'的编程语言,这是我第一次读到它。有趣的主要方法

对于我来说,语法看起来与Java非常相似。 但最有趣的是当我看到他们的主要方法使用char [] []。

我打开了Eclipse和我尝试这样做:

public static void main(char [][] args){ 
} 

我很惊讶,当我看到它没有语法错误的编译,但是我不明白为什么。
有人可以向我解释为什么这个对main方法的调用可以用Java编译?

+0

实际上一个String是一个字符数组,所以一个字符数组的数组是一个字符串数组。你可以在D:alias char [] string;中定义一个别名,所以它会在你的main方法中是string [],这实际上是char [] [] – 2011-06-16 15:24:30

正如你所写的是有效的Java语法(静态无效方法,名称为main,参数为二维char数组),它将进行编译。但问题是,这种主要方法不能作为Java程序的入口点,因为它必须具有签名:public static void main(String[] args)

+0

我明白了。我认为还有其他的选择。我认为自从JSE6以来,这个新的变量叫做可变参数,也可以做类似的事情。 main(String ... args),我认为也可以编译但不能运行。 – sfrj 2011-06-16 23:53:46

dcn,是正确的,它是一个名为main的有效方法。但不能用于启动Java应用程序。

为了进一步扩大,有一定的灵活性,在签名:

可以使用任何变量名,而不仅仅是args

public static void main(String[] whateverNameYouWant) { 

} 

变量必须是一个字符串数组,但你可以声明在任何有效的Java语法,就像这样:

public static void main(String args[]) { 

} 

正如迈克尔Krussel指出的那样,你也可以使用可变参数:

public static void main(String... args) { 

} 
+1

你也可以使用varargs main(String ... args) – 2011-06-16 16:25:38