我可以写:
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/