我可以写:
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中玩数组以来,这个简单的问题一直困扰着我。
问题来源于stack overflow
为什么这会被Java阻止?
您必须询问Java设计人员。该限制可能有一些微妙的语法原因。请注意,某些数组创建/初始化结构不在Java 1.0中,而(IIRC)是在Java 1.1中添加的。
但是“为什么”是无关紧要的……存在限制,您必须忍受它。
我知道如何解决它,但有时会更简单。
您可以这样写:
AClass[] array; ... array = new AClass[]{object1, object2};
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。