首页 >Java >java教程 >为什么 Java 使用大括号来防止未初始化的数组赋值?

为什么 Java 使用大括号来防止未初始化的数组赋值?

Patricia Arquette
Patricia Arquette原创
2024-12-10 10:16:11421浏览

Why Does Java Prevent Uninitialized Array Assignment with Curly Braces?

未初始化的数组赋值语法

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn