当前位置: 首页 > 面试题库 >

Java数组初始化列表以逗号结尾

顾乐心
2023-03-14
问题内容

,数组初始化列表中使用的逗号分隔符可以以C结束列表,这在 Kernighan&Ritchie编写的C编程语言第二版中 有所提及。

例如

  int c[] = { 1, 2, 3, };

当列表很长时,这很方便,并且不想在添加项目时更改/检查上一行

  long long c[] = { 
                    22342342344,
                     4324234234,
                    12312311111,
                   };

但是,在Java中,我可以观察到两种不同的行为:
在Eclipse中,,当某些版本的maven编译器插件抱怨并引发编译错误时,结尾被接受。

但是,在 Flanagan的Java 书中我没有提到任何这种奇异 之处

关于初始化项之后的结尾逗号的正式规则是什么?
建议 不要 使用它吗?


问题答案:

规范的第10.6节明确指出允许使用尾部逗号(并忽略):

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

链接



 类似资料:
  • 问题内容: 数组初始化器可用于在编译时初始化数组。带有尾随逗号的初始化器,如下所示,可以正常编译。 输出: 在上述讨论中显而易见的一维数组也是合法的。 输出: 即使下面的内容是合法的语法,也可以编译。 编译器在逗号前后应有一个常量值(或另一个初始化程序)。如何编译?编译器是否只是忽略了这种逗号或在这种情况下发生了其他事情? 问题答案: 末尾的逗号将被忽略。根据Java规范: 尾部逗号可能会出现在数

  • 问题内容: 如果没有明确指出它是String [],那么第一次调用someMethod怎么不编译? 使用数组初始化器创建String []数组很好,但是不能使用它传递参数。花括号是否以其他方式用于传递参数,从而使我期望其表现出轨? 编译器错误如下: Moo类型的someMethod(String [])方法不适用于参数(字符串,字符串,字符串) 问题答案: 您只能在声明数组变量或在数组创建表达式(

  • 问题内容: 我知道当我初始化一个char数组时: 要么 为什么不喜欢 初始化数组: 为什么它们不同?它是Java哲学的本质之一还是其​​背后的某些原因? 问题答案: 如果您曾经使用过 C ,那么答案就非常简单。在 C语言中 ,创建数组的方式是在堆栈上分配一个足以容纳元素数量的静态内存长度,并使用指针指向第一个元素-或堆上动态内存长度,然后用指针指向第一个元素。 在 C ++中 ,第二个版本已更改为

  • 考虑如下代码: vector<double> v = { 1, 2, 3.456, 99.99 }; list<pair<string,string>> languages = { {"Nygaard","Simula"}, {"Richards","BCPL"}, {"Ritchie","C"} }; map<vector<string>,vector<int>> years = {

  • 问题内容: 我需要运行类似的查询: 但是我希望子选择返回逗号分隔的列表,而不是数据列。这有可能吗?如果可以,怎么办? 问题答案: 您可以使用GROUP_CONCAT执行该操作,例如

  • 我想在arraylist中传递值,并且初始化良好。但有一个错误- 线程“main”java.lang.IndexOutOfBoundsException:索引:3,大小:0 我正在努力,这是我的代码-