开发者社区> 问答> 正文

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

我可以写:

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

展开
收起
保持可爱mmm 2020-02-07 00:52:57 421 0
1 条回答
写回答
取消 提交回答
  • 为什么这会被Java阻止?

    您必须询问Java设计人员。该限制可能有一些微妙的语法原因。请注意,某些数组创建/初始化结构不在Java 1.0中,而(IIRC)是在Java 1.1中添加的。

    但是“为什么”是无关紧要的……存在限制,您必须忍受它。

    我知道如何解决它,但有时会更简单。

    您可以这样写:

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

    2020-02-07 00:53:32
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载