没有价值的原始数组初始化?

Primitive Array initialization without value?

我刚刚找到一个随机代码片段:

int[] i = new int[]{0,};

这怎么可能?

基本类型不能为空...

我只是想知道这是在创建什么...

此处new int[]将创建一个数组并使用数组元素{1}进行初始化。

new int[]{1,}; // Create an array of int of size 1 with value 1 as a first element

如果打印int[] i的长度。大小将打印 1。因为如果没有找到更多元素,最后一个 comma 将被忽略。

System.out.println(i.length); // it will print 1 

这里i是一个引用变量,它保存着array对象。而 new int[] 将只负责创建 Array.

谢谢

这将创建一个长度为 1 的数组,相当于

int[] i = new int[]{0};

JLS §10.6

中指定的最后一个逗号将被忽略

A trailing comma may appear after the last expression in an array initializer and is ignored.