我可以写:
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中玩数组以来,这个简单的问题一直困扰着我。
你必须询问Java设计人员。该限制可能有一些微妙的语法原因。请注意,某些数组创建/初始化结构不在Java 1.0中,而(IIRC)是在Java 1.1中添加的。
但是“为什么”是无关紧要的……存在限制,你必须忍受它。
你可以这样写:
AClass[] array; ...