как я понимаю данное исключение говорит о том, что объект не хранит в себе данные, и поэтому при выводе на экран информации, выдает исключение, но я вроде как записываю в переменную значение, и данное исключение не должно появляться, рассудите пожалуйста, тут два класса с наследованием
public class Main extends Field {
public static void main(String[] args) {
new Field().initMap();
new Field().printMap();
}
}
второй класс
public class Field {
protected final int SIZE = 3;
protected char[][] map;
protected final char DOT_EMPTY = '*';
protected void initMap(){
map = new char[SIZE][SIZE];
for(int i = 0; i<SIZE; i++){
for(int j=0; j < SIZE; j++ ){
map[i][j] = DOT_EMPTY;
}
}
}
protected void printMap(){
for(int i = 0; i<= SIZE; i++){
System.out.print(i + " ");
}
System.out.println();
for(int i =0; i <SIZE; i++){
System.out.print((i + 1) + " ");
for(int j = 0; j < SIZE; j++){
System.out.print(map[i][j] + " ");
}
System.out.println();
}
System.out.println();
}
}
жалуется на строку кода System.out.print(map[i][j] + " ");
в классе Field
У вас в двух разных объектах происходит действие:
new Field().initMap();
-- создаете новый объект и в нем заполняется его map
new Field().printMap();
-- создаете новый объект и в нем обращаетесь к его map
, а она пуста, т.к. initMap()
не был вызван для негоПравильно так:
public class Main extends Field {
public static void main(String[] args) {
Field field = new Field();
field.initMap();
field.printMap();
}
}
В начало метода printMap() можете добавить проверку на null:
protected void printMap(){
if(map == null) {
System.err.println("Map is empty"); //удалить, если вывод ошибки не требуется
return;
}
for(int i = 0; i <= SIZE; i++){
System.out.print(i + " ");
}
System.out.println();
for(int i = 0; i < SIZE; i++){
System.out.print((i + 1) + " ");
for(int j = 0; j < SIZE; j++){
System.out.print(map[i][j] + " ");
}
System.out.println();
}
System.out.println();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хочу научиться использовать Hibernate и разбираю такой пример из книги:
у меня образовался новый вопросНедавно я сделал аутентификацию с помощью google (firebase)
Моя задача: считывать каждый 'tick' новой информации, присланной от сокет сервера, никакие данные отправлять на сервер я не буду