未初始化的数组赋值语法
Java 允许在声明中对数组进行简洁的初始化:
AClass[] array = {object1, object2};
但是,尝试在编译器中使用花括号分配未初始化的数组会产生结果error:
AClass[] array; ... array = {object1, object2}; // Error
限制原因
此限制的具体原因尚不清楚。这可能是由于语法复杂性或希望保持 Java 语法的一致性。
解决方法
虽然不那么简洁,但您可以使用 new 初始化未初始化的数组运算符,然后显式分配元素:
AClass[] array; ... array = new AClass[2]; ... array[0] = object1; array[1] = object2;
简化示例
在提供的代码片段中使用此解决方法可以简化数组初始化逻辑:
public void selectedPointsToMove(cpVect coord) { if (tab == null) { if (arePointsClose(coord, point1, 10)) tab = new cpVect[]{point1}; else if (arePointsClose(point2, coord, 10)) tab = new cpVect[]{point2}; else tab = new cpVect[]{point1, point2}; } }
以上是为什么 Java 使用大括号来防止未初始化的数组赋值?的详细内容。更多信息请关注PHP中文网其他相关文章!