Что случилось с программой ниже?Зачем мне нужно `{...}` заполнять массив в области класса?
package test;
public class Test {
byte[] array = new byte[2];
array[0] = 'A';
array[1] = 'B';
}
Посмотрите, среда указывают на некоторые проблемы (нажмите, чтобы увеличить):
В другом слове, почему я должен переместить наполнителя линии на другую внутреннюю сферу, как следующие:
package test;
public class Test {
byte[] array = new byte[2];
{
array[0] = 'A';
array[1] = 'B';
}
}
IDE не имеет проблем с описанной выше программой.
С 'array [0] = 'A';' вы не инициализируете новую переменную, вы заполняете существующий массив. Я не экспорт Java, но это не удивляет меня, что вы не можете сделать это в описании класса в качестве новой инициализации. – Fractaliste
Скриншоты IDE - это отвратительный способ совместного использования кода. Попытайтесь найти где-нибудь в своей среде IDE (например, окно вывода компилятора), где вы можете захватить сообщения об ошибках как текст для включения в свой вопрос. –
Ответ ... потому что JLS определяет его так. Вы можете посмотреть JLS 8.1.6 - https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.1.6. Также в качестве примечания вы можете просто использовать здесь инициализатор массива (который действителен), т. Е. 'Byte [] array = {'A', 'B'}'; –