当前位置: 首页 > 面试题库 >

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

东方骏
2023-03-14
问题内容

我可以写:

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设计人员。该限制可能有一些微妙的语法原因。请注意,某些数组创建/初始化结构不在Java 1.0中,而(IIRC)是在Java 1.1中添加的。

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

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

你可以这样写:

AClass[] array;
...


 类似资料:
  • 问题内容: 如何在Java中声明和初始化数组? 问题答案: 你可以使用数组声明或数组文字(但只有当你立即声明并影响变量时,数组文字才能用于重新分配数组)。 对于原始类型: 例如,对于类,String是相同的: 当你首先声明数组然后对其进行初始化时,第三种初始化方法很有用。

  • 如何在Java中声明和初始化数组?

  • 本文向大家介绍Java 数组声明、创建、初始化详解,包括了Java 数组声明、创建、初始化详解的使用技巧和注意事项,需要的朋友参考一下 一维数组的声明方式: type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为: 数组名 = new 数组元素的类型 [数组元素的个数] 实例: TestNew.java: 程

  • 当我在java中在方法之外的单独行上声明和构造一个数组时,我感到困惑,因此它将是一个实例变量,我得到一个编译错误,然而当我在一行上构造和初始化时,它是好的,为什么会发生这种情况? }

  • 问题内容: 我发现defs循环,主语由其动词定义,但动词未定义!那么如何定义它们呢? 通告定义 初始化:初始化变量。可以在声明时完成。 赋值:为变量赋值。它可以在任何地方完成,只有使用final-identifier一次。 声明:向变量声明值。 [更新,尝试通过lambda calc理解主题] 问题答案: 赋值:丢弃变量的旧值并用新值替换 初始化:这是一种特殊的分配:第一种。在初始化对象具有nul

  • 我发现defs循环,主语是由他们的动词定义的,但动词是未定义的!那么你如何定义它们呢? 循环定义 初始化:初始化一个变量。可以在申报时进行。 赋值:给变量赋值。它可以在任何地方完成,只有一次使用final-identifier。 声明:向变量声明值。 “更新,尝试用lambda calc理解主题”