(我正在攻读Java助理考试OCJP 7)
要求选择非法初始化的例子。
其中一个答案是: -
int [] k= new int[2]{5,10};
解释说,在创建匿名数组时,指定数组的大小是违法的。
据我所知,这不是一个匿名数组,因为它被命名为“k”。
调用方法,例如: -
operateOnArray(new int[]{5,10});
本来是一个匿名数组的例子,因为它没有被声明。
我可以看到“2”使其成为非法 - 但这并不是匿名的,
有人可以告诉我吗?
答案 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}
是一个匿名数组,不管接下来发生什么。如果不将其设置为变量,则保持匿名。