gpt4 book ai didi

java - 不在声明中时的数组初始化语法

转载 作者:太空宇宙 更新时间:2023-11-04 13:17:52 25 4
gpt4 key购买 nike

我可以写:

AClass[] array = {object1, object2}

我还可以写:

AClass[] array = new AClass[2];
...
array[0] = object1;
array[1] = object2;

但我不会写:

AClass[] array;
...
array = {object1, object2};

为什么这会被 Java 阻止?

我知道如何解决这个问题,但有时它会更简单。

例如:

public void selectedPointsToMove(cpVect coord) {

if (tab == null) {
if (arePointsClose(coord, point1, 10)) {
cpVect[] tempTab = {point1};
tab = tempTab;
} else if (arePointsClose(point2, coord, 10)) {
cpVect[] tempTab = {point2};
tab = tempTab;
} else {
cpVect[] tempTab = {point1,point2};
tab = tempTab;
}
}
}

自从我学习如何在 Java 中使用数组以来,这个简单的问题就一直困扰着我。

最佳答案

Why is this blocked by Java?

您必须询问 Java 设计者。该限制可能存在一些微妙的语法原因。请注意,Java 1.0 中没有一些数组创建/初始化构造,而 (IIRC) 是在 Java 1.1 中添加的。

但是“为什么”并不重要......限制就在那里,你必须忍受它。

I know how to work around it, but from time to time it would be simpler.

你可以这样写:

AClass[] array;
...
array = new AClass[]{object1, object2};

关于java - 不在声明中时的数组初始化语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33379627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com