Что означает следующее заявление Java - PullRequest
0 голосов
/ 02 ноября 2011

Я проверяю Java и наткнулся на что-то вроде следующего блока кода

public Foo example()
Foo bar = new Foo(...);
...
return new Foo[]{bar};

Что означает Foo [] {bar} в этом контексте?Возвращает ли он массив объектов Foo, заполненных bar?Кажется, что-то действительно тривиальное, но я не уверен, что, как искать это.

Ответы [ 6 ]

4 голосов
/ 02 ноября 2011

Да, он создает массив с одним элементом, изначально установленным на значение bar.Вы можете использовать этот синтаксис для большего количества элементов, например,

new int[] { 1, 2, 3 }

Это ArrayCreationExpression , как указано в разделе 15.10 Спецификации языка Java , используя ArrayInitializer , как указано в разделе 10.6 .

3 голосов
/ 02 ноября 2011

Да. Это массив из одного элемента. Этот элемент bar.

1 голос
/ 02 ноября 2011
  • Создайте экземпляр класса Foo в строке 2, когда вы говорите new Foo (...)
  • В следующей строке вы возвращаете массив.
  • "Тип" массива "Foo"
  • Член в массиве, который вы возвращаете, является "bar"
1 голос
/ 02 ноября 2011

Эквивалентный код будет

Foo[] foos = new Foo[1];
foos[0] = bar;
return foos;
1 голос
/ 02 ноября 2011

Да, все верно. Это создает одноэлементный массив Foo, который состоит только из элемента bar.

0 голосов
/ 02 ноября 2011

Возвращается массив с содержимым в виде бара.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...