Я пишу класс объекта для подсчета числа каждого письма, и когда я запускаю свой тестовый код, он показывает мне исключение нулевого указателя, когда «abc» передается. , нет ошибки, это тестовый код, но в классе объектов есть некоторая ошибка.Как исправить это конкретное исключение нулевого указателя
public class LetterInventory {
private static final int COUNTER = 26;
private int size = 0;
private int[] inventory;
public LetterInventory() {
inventory = new int [COUNTER];
}
public LetterInventory (String data) {
data = data.toLowerCase();
for(int i = 0; i < data.length(); i++) {
int charPosition = data.charAt(i) - 'a';
if(charPosition >= 0 && charPosition < COUNTER) {
inventory[charPosition]++;
size++;
}
}
}
Исправления является одинаковым для всех NPE: выяснить, что нуль и назначить его ненулевую ссылку. Трассировка стека указывает номер строки в файле, который ее создал. Разве это не достаточно хороший намек? – duffymo
Где находится NPE? –
Ну, это не очень умно, чтобы инициализировать 'inventory' в одном конструкторе и использовать его в другом. Вы не можете позвонить обоим, так что либо вы не можете считать что-либо, либо 'inventory' остается' null'. – Tom