1

在我的一生中,我一直在想这两者有什么不同,在

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

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

我和我的朋友一起看过这些代码,但即使他也不知道原因。

这两者有何不同?

抱歉,我编辑了 main 方法的返回类型...

4

6 回答 6

6

这两者在功能上没有区别。但就约定而言,使用可见性运算符,如 public、private,首先是 static。

并且不要忘记返回类型!

它应该是这样的:

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

参数String[] args是一个普通数组。String... args被称为可变参数。在这种情况下没有区别。但是在这里看看varargs

于 2013-09-26T10:25:19.010 回答
4
public static void main (String[] args){}
static public void main (String... args){}

是相同的。请注意,返回类型(在本例中为 void)不能重新定位。

请参阅参考资料

于 2013-09-26T10:25:08.167 回答
2

两者之间的唯一区别是调用函数的方式。使用 String var args 您可以省略数组创建。

public static void main(String[] args) {
    callMe1(new String[] {"a", "b", "c"});
    callMe2("a", "b", "c");
    // You can also do this
    // callMe2(new String[] {"a", "b", "c"});
}
public static void callMe1(String[] args) {
    System.out.println(args.getClass() == String[].class);
    for (String s : args) {
        System.out.println(s);
    }
}
public static void callMe2(String... args) {
    System.out.println(args.getClass() == String[].class);
    for (String s : args) {
        System.out.println(s);
    }
}  

这是链接

这在功能上是相同的

  public static 

或者

  static public 
  1. 可变参数
  2. 你什么时候使用可变参数
  3. 最好的解释教程可变参数
于 2013-09-26T10:29:15.547 回答
0

两者都可以写。没关系。意思完全一样。

变量也是如此。你可以写

final private String

或者

private final String
于 2013-09-26T10:24:10.097 回答
0

两者都是一样的,只是个人风格的问题。传统是首先提供可访问性

public static void main(String... args)
于 2013-09-26T10:25:10.363 回答
0

两者都是一样的,正如许多人已经写过的那样。我只想指出,Java 中的可变参数功能是从 Java 5(Java 1.5)版本实现的。因此,您只需要使用“可变参数样式”来注意这一点。

于 2013-09-26T11:03:47.560 回答