【问题标题】:Why I can't initialize anonymous String array with initial capacity?为什么我不能用初始容量初始化匿名字符串数组?
【发布时间】:2020-02-21 04:16:41
【问题描述】:

我正在尝试创建新的匿名字符串数组:

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

但是 IDE 给了我编译时错误语法。这种语法在其他语言上可用,但为什么 Java 不允许这样做?

【问题讨论】:

标签: java arrays syntax


【解决方案1】:

这种语法在其他一些语言上可用,但为什么 Java 不允许这样做?

因为它要么是多余的,要么容易出错。

  • 如果数组的大小和初始化器中的元素个数必须相同,那就是多余的了。

  • 如果数组的大小和初始化器中的元素数量可能不同,则容易出错。 (对于读者来说,最后是否有默认的初始化元素并不明显......除非读者手动计数元素。)

这是我的看法。我们不知道 Java 语言设计者是否使用了相同的推理。无论哪种方式,它都没有实际意义。

【讨论】:

    【解决方案2】:

    你不需要写new String[],只写数组元素就声明了一个新数组。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-10
      • 2012-01-07
      • 1970-01-01
      • 2012-05-17
      • 2011-05-15
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      相关资源
      最近更新 更多