如果将结果数组分配给变量,它是否为匿名数组

时间:2014-12-03 14:35:50

标签: java arrays language-lawyer anonymous

(我正在攻读Java助理考试OCJP 7)

要求选择非法初始化的例子。

其中一个答案是: -

int [] k= new int[2]{5,10};

解释说,在创建匿名数组时,指定数组的大小是违法的。

据我所知,这不是一个匿名数组,因为它被命名为“k”。

调用方法,例如: -

operateOnArray(new int[]{5,10});

本来是一个匿名数组的例子,因为它没有被声明。

我可以看到“2”使其成为非法 - 但这并不是匿名的,

有人可以告诉我吗?

4 个答案:

答案 0 :(得分:3)

嗯......从我所教过的内容(以及我所读过的内容)来看,匿名数组的定义是:"没有任何名称的数组,它是一个数组只是为了创造和使用它"。由于它没有任何名称,因此您无法重用该数组。

我准备参加OCJP时的最佳参考资料是:

anonymous int array : new int[] { 1, 2, 3, 4};
anonymous String array : new String[] {"one", "two", "three"};
anonymous char array :  new char[] {'a', 'b', 'c');

您可以注意到(并且您已经知道)这些类型的数组同时具有创建和初始化(当您使用new()关键字创建它们时在初始化它们而不指定给它们任何变量,您将无法在以后重复使用它。)

因此,根据您的提及,当您为变量分配数组时,即使您创建它并在同一行初始化,也会将其分配给变量,以便以后可以重用它,它是不是匿名的,它可以被引用,所以我想知道为什么在"匿名数组"你会看到类似的东西:

int [] k= new int[2]{5,10};

匿名意味着"名称不知道"由于数组被分配给名为" k"的变量,因此在您指定的行中不是这种情况。但是,这个显示了匿名数组对象创建的属性,它由引用变量" k"指向,所以如果我们只写" new int [] {1,2,3}; "那么这就是如何创建匿名数组对象......

当我为OCJP 7做准备时,我从这个页面阅读了很多文章,我建议你在将来深入研究Java:)

参考:http://javarevisited.blogspot.com/2012/01/anonymous-array-example-java-create.html

你可以在那里找到很好的例子和文章:)

答案 1 :(得分:0)

我认为这就像一个匿名方法......

匿名数组就像myListView.setAdapter(this,new String [] {“Peter”,“Paul”,“Marry”});

其中(new String [] {“Peter”,“Paul”,“Marry”})是匿名数组: - )

所以正常(非匿名)数组会被删除(可能在onCreate中),如

String [] array = new String [] ...

虽然匿名者在使用前不会被删除......

答案 2 :(得分:0)

问题到底是什么还不是很清楚,但我明确指出,如何在Java中正确使用匿名数组的概念存在困惑。您只能将匿名数组声明为函数的参数。所有其他尝试在此上下文中声明匿名数组失败。这个快速视频显示: anonymous array as argument to function

答案 3 :(得分:-1)

如果你看到这部分代码:

new int[2]{5,10}

在第一个声明中,然后

new int[]{5,10}

来自第二次宣言。它基本相同

所以,声明如下:

new int[]{5,10}

是一个匿名数组,不管接下来发生什么。如果不将其设置为变量,则保持匿名。