我可以写:
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;
}
}
}
发布于 2018-03-22 15:10:57
你可以这样写:
AClass[] array;
...
array = new AClass[]{object1, object2};
发布于 2018-03-22 15:27:57
第一个例子
AClass[] array = {object1, object2}
实际上意味着
AClass[] array = new AClass[]{object1, object2};
但是Java设计人员所做的是,如果声明时创建数组,就可以更快地编写它。
建议的解决办法是好的。如果时间或内存使用在运行时非常重要,请使用数组。如果它并不重要,并且希望代码更易于理解和使用,那么使用ArrayList。
https://stackoverflow.com/questions/-100007730
复制相似问题