Является ли это анонимным массивом, если результирующий массив присваивается переменной

(Я изучаю экзамен по Java Java OCJP 7)

Задан вопрос о выборе примеров незаконных инициализаций.

Один из ответов был: -

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

Объяснение гласит, что при создании анонимного массива было запрещено указывать размер массива.

Из того, что я знаю, это НЕ анонимный массив, так как он называется "k".

Вызов метода, например: -

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

Был бы примером анонимного массива, поскольку он не был объявлен.

Я вижу, что "2" делает его незаконным, но это не делает его анонимным,

Пожалуйста, кто-нибудь может мне посоветоваться?

4 ответа

Мммм... из того, чему меня научили (а также от того, что я прочитал), определение анонимного массива: "Массив без какого-либо имени, это массив только для создания и использования", И поскольку у него нет имени, вы не сможете повторно использовать этот массив.

Лучшие ссылки, которые я имел, когда я готовился к 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

Вы можете найти также хорошие примеры и статьи там:)


Я думаю, что это будет как анонимный метод...

Анонимный массив будет похож на myListView.setAdapter(это, новая String [] { "Peter", "Paul", "Marry" });

Где (новая String [] { "Peter", "Paul", "Marry" }) - анонимный массив: -)

Итак, нормальный (не анонимный) массив будет уменьшен (возможно, в onCreate), например

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

Пока анонимный не будет уменьшен до использования...


Не совсем ясно, в чем именно заключается вопрос, но я четко понимаю, что существует путаница в том, как правильно использовать концепцию анонимного массива в Java. Вы можете объявить анонимный массив как аргумент функции. Все остальные попытки объявить анонимный массив не в этом контексте, не удались. Это быстрое видео показывает это: анонимный массив как аргумент для функции


Если вы видите эту часть кода:

new int[2]{5,10}

в первом объявлении, а затем

new int[]{5,10}

из второго объявления. Это в основном то же самое

Итак, объявление типа:

new int[]{5,10}

- анонимный массив, не имеет значения, что произойдет дальше. Если вы не установите его для переменной, он останется анонимным.

licensed under cc by-sa 3.0 with attribution.