为了账号安全,请及时绑定邮箱和手机立即绑定

不在声明中时,数组初始化语法

不在声明中时,数组初始化语法

鸿蒙传说 2019-06-26 16:58:37
不在声明中时,数组初始化语法我可以写: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处理数组以来,这个简单的问题一直困扰着我。
查看完整描述

3 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

为什么这会被Java阻止?

你得问问Java设计者。这种限制可能有一些微妙的语法原因。注意,有些数组创建/初始化构造不是在Java1.0中,(IIRC)是在Java1.1中添加的。

但是“为什么”并不重要.。限制是存在的,你必须接受它。

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

你可以这样写:

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


查看完整回答
反对 回复 2019-06-26
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

我不能回答为什么。

但是如果你想要动态的东西,你为什么不考虑集合ArrayList。

ArrrayList可以是任何对象类型。

如果您想要将其作为数组使用,则可以在其上使用toArray()方法。

例如:

            ArrayList<String> al = new ArrayList<String>();
            al.add("one");
            al.add("two");
            String[] strArray = (String[]) al.toArray(new String[0]);

希望这能帮到你。


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 421 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号