【问题标题】:Define a String array in Java在 Java 中定义一个字符串数组
【发布时间】:2013-08-15 10:00:31
【问题描述】:

在java中我们可以将main()方法定义为这两种方式。

public static void main(String[] args) {          
    System.out.println("Hello World");
}

.

public static void main(String... args) {          
    System.out.println("Hello World");
}

这两种方法都采用 arrayString 参数。现在考虑以下场景。

    String[] arr=new String[10]; // valid
    String... arr=new String[10];// invalid 

Java 绝不允许以这种方式创建数组String... arr=new String[10];。但在上述方法实现中java 允许这样做。我的问题是java 如何在两种情况下实现这两种不同的行为?

【问题讨论】:

  • 我喜欢这个问题,因此投了赞成票。

标签: java arrays string main


【解决方案1】:
... 

是方法参数的语法,而不是变量定义的语法。这个符号的名称是varargs,这是不言自明的,即可变数量的参数。

【讨论】:

    【解决方案2】:

    Variable argument or varargs(...) 在 Java 中用于编写更灵活的方法,这些方法可以接受尽可能多的参数来进行初始化。

    【讨论】:

      【解决方案3】:

      您可以在main 中使用可变参数,因为用可变参数 (...) 声明的方法与带数组参数的方法声明的字节码兼容(为了向后兼容)。这并不意味着类型声明允许使用相同的语法。

      【讨论】:

        【解决方案4】:

        ... 指的是 varargs,其主要目的是使方法更具可读性

        void method(String... args) {
        
        }
        

        可以称为

        method("a");method("a", "b");method("a", "b", "c");

        我认为在变量声明中使用它没有意义,我们无能为力

        String... a = {"a", "b"}
        

        数组无论如何都可以声明为动态大小

        String[] arr = {"a"};
        

        String[] arr = {"a", "b"};
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-30
          • 2011-08-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多