В чем смысл конструкции при инициализации массива?

Я решал задачи и увидел такую ​​конструкцию:

String t[] = new String[n], e;

Не могли бы вы помочь мне, что означает ", e"? Не смог найти что-то по этому поводу

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это просто способ объявить 2 переменные без указания типа String дважды. Например, это объявляет x и y со значениями 5 и 6:

int x = 5, y = 6;

В вашем случае t объявлен как массив строк со значением, присвоенным как new String[n], а e является строкой (значение не присвоено), поэтому его необходимо присвоить, прежде чем ссылаться на e позже.

IMO гораздо понятнее указать в отдельных строках скобки перед именем переменной:

String[] t = new String[n];
String e;

Также обратите внимание, что перемещение [] перед t изменяет определение e на String[], так что String [] t = new String[n], e эквивалентно:

String[] t = new String[n];
String[] e;

Я просматриваю спецификацию Java, чтобы понять, что Зачемe — это String, а не String[]. У кого-нибудь есть ссылка на это под рукой?

Federico klez Culloca 14.05.2022 14:54

Если вы переместите скобки, оба будут String[] в этом: String [] t = new String[n], e

DuncG 14.05.2022 14:56

@FedericoklezCulloca Похожий пример представлен в JLS 17, 10.2 Переменные массива, так что, возможно, вы можете использовать его в качестве отправной точки (я не хочу тратить больше времени на исследование этой эзотерической мерзости;)). Похоже, что этот раздел действительно определяет это, но у меня нет энергии для внимательного чтения.

Mark Rotteveel 14.05.2022 15:09

будет ли String[] t[] указывать на двумерный массив?

experiment unit 1998X 14.05.2022 15:33

@experiment unit 1998X Да что бы объявить String[][] t и String[] e

DuncG 14.05.2022 15:35

Другие вопросы по теме