2014-04-15 4 views
-1

Я написал это заявление в основном методе Исключение будет в (GuaranteeYears), поэтому я положил его в блок try.catch Исключение с добавлением

Первый в main я делаю Store объект и передать номер 4 параметра, в Store классе у меня будет массив с именем arrProduct, который будет иметь длину 4:

boolean flag1 = true; 
while (flag1) { 
    try { 
     System.out.println("Ente GuaranteeYears"); 
     int GuaranteeYears=read.nextInt(); 

     StrongDevice s = new StrongDevice(code,type,price,Model,Capacity,GuaranteeYears); //the object 

     flag1 = false; 
     x.addProduct(s); 
    } 

и это мое дополнение метод

public boolean addProduct(Product p) { 
    if(arrProduct.length==NumOfProduct) 
     return false; 

    arrProduct[NumOfProduct]=p; 
    NumOfProduct++; 
    return true; 
} 

Мой вопрос: когда я делаю объект и добавить его в массив это дает мне NullPointerException - почему это произошло?

+0

@SotiriosDelimanolis Я действительно знаю, что такое Null Указатель Исключение, но я не знаю, почему это произошло здесь? – BSMN

+0

Для NPE не существует миллиона причин. Прочтите ответ. Вы узнаете, почему это происходит, и вы можете применить это к своему сценарию. –

ответ

0

Насколько я понял, линия, которая вызывает NPE является

x.addProduct(s); 

Скорее всего это вызвано массив arrProduct, который не инициализирован и вызвать NPE, когда доступ к нему осуществляется.

Чтобы исправить это, убедитесь, что arrProduct всегда правильно инициализирован при создании объекта Store.

+0

@BSMN Можете ли вы отправить весь класс 'Store'? –

+0

Да, спасибо, я инициализировал массив как открытый, затем я инициализировал его снова в конструкторе! , теперь его работа, спасибо за помощь – BSMN

+0

@BSMN Добро пожаловать, я рад помочь. Не забудьте подтвердить правильный ответ (ы) и выбрать его как правильно. –

Смежные вопросы