【问题标题】:array with comma and without comma带逗号和不带逗号的数组
【发布时间】:2012-11-07 06:44:45
【问题描述】:

我正在创建包含少量元素的字符串数组。那时我注意到 我在第一个元素之后放了逗号,它仍然可以编译。我以为它不会编译。然后我打印尺寸,它说 1

  String args [] = {request.getParentMessageID() , };
  System.out.println(args.length);

所以

String args [] = {request.getParentMessageID() , };  and String args [] = {request.getParentMessageID()};

两者的行为相同。

谁能解释一下为什么这些没有什么不同以及为什么会编译。

【问题讨论】:

标签: java arrays


【解决方案1】:

Trailing comma 在像 ignored by compiler 这样的数组初始化中。这些通常是添加的,以便稍后在数组中添加一些内容,只需要添加元素而无需担心逗号。

所以它是允许的并且是有效的语法。 这也列在JLS - Section#10.6 (Array Initializers):-

一个尾随逗号可能出现在数组中的最后一个表达式之后 初始化器并被忽略。

【讨论】:

  • 感谢您的澄清。不知道为什么java决定这样做而不是给出编译错误
  • @Sura.. 我在第一段中写过。不客气:)
【解决方案2】:

根据Java Language Specification 10.6

数组初始值设定项是用逗号分隔的表达式列表,用大括号 { 和 } 括起来。

尾随逗号可能出现在数组初始值设定项中的最后一个表达式之后并被忽略。

我希望你现在清楚了。

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 2022-10-13
    • 2018-07-12
    • 1970-01-01
    • 2015-04-11
    • 2014-12-18
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多