ошибка при создании объекта массива в java коде - PullRequest
1 голос
/ 11 февраля 2020

У меня есть класс по имени, и его код ниже

class card {
 private String word, mean;

 public card() {}

 public card(String w, String m) {
  this.word = w;
  this.mean = m;
 }

 // Getter and setter ...

}

, а затем, если я напишу ниже код в основной функции

card[] c=new card[3];   
c[1].setword("Hello");

Я получил NullPointerException

как мне это исправить?

Ответы [ 3 ]

2 голосов
/ 11 февраля 2020

Это происходит потому, что вы просто инициализируете массив, но не инициализируете элементы массива. Если вы напечатаете элементы массива в System.out, вы увидите, что все они имеют значение null. Вы должны инициализировать каждый элемент массива.

card[] c = new card[3];
c[1] = new card();
c[1].setword("Hello");
c[2] = new card();
...
2 голосов
/ 11 февраля 2020

Эта строка:

 card[] c=new card[3];

вы только что создали объект массива с размером = 3 для хранения card, но не создали ни одного card объекта. Поэтому, чтобы исправить это, вы должны создать card объект и сохранить его в своем массиве.

card[] cards = new card[3];
for (int i = 0; i < 3; i++) {
   cards[i] = new card();
}
cards[1].setword("Hello");

Кстати, вы должны называть свой класс первой буквой в верхнем регистре, это java naming условность.

1 голос
/ 11 февраля 2020

Сначала необходимо инициализировать объект, затем установить значение, как показано ниже -

c[1] = new card();

, затем

c[1].setword("Hello");

Надеюсь, это поможет.

...