2014-05-10 4 views
-2

У меня есть следующий code-ошибка NullPointerException во время, если заявление

if (aa[0].equals("add")) { 
    if (aa[1].equals("s")&aa[3].equals("s")) { 
     A= Double.parseDouble (UISAVE[Integer.parseInt(aa[2])]); 
     B= Double.parseDouble (UISAVE[Integer.parseInt(aa[4])]); 
    } 
    if (aa[1].equals("s")&!aa[3].equals("s")) { 
     A= Double.parseDouble (UISAVE[Integer.parseInt(aa[2])]); 
     if (aa[3].equals(null)) { 
      aa[3]="0"; 
     } 
     B= Double.parseDouble (aa[3]); 
    } 
    if (!aa[1].equals("s")) { 
     A= Double.parseDouble (aa[2]); 
     B= Double.parseDouble (aa[3]); 
    } 
    out[count]=Double.toString(A+B); 
    read(in, out, UISAVE); 
} 

и я получаю эту ошибку -

Исключение в потоке "главный" java.lang.NullPointerException в CMDL.shizzle. april2014.Write.read (Write.java:25)

Теперь, когда он говорит, что ошибка, по-видимому, если заявление ... if (aa [1] .equals ("s" (& aa [3] .equals ("s")) { и я пробовал большую часть того, что я могу сделать, и не нашел решения все же.

Спасибо, если вы можете помочь.

+0

Либо аа [1] или аа [3] равна нулю, но это все, что я могу вам рассказать на основе информации, приведенной –

+0

Возможный дубликат [Что такое Исключение Null Указатель и как его исправить?] (http://stackoverflow.com/questions/218384/what-is- а-нуль-указатель исключений и, как-делать-я-Fix-It) – yshavit

ответ

0

Обновление вашей, если заявления следующим образом:

if (aa[0].equals("add")) { 
    if ((aa[1].equals("s")) && (aa[3].equals("s"))) { 
     A= Double.parseDouble (UISAVE[Integer.parseInt(aa[2])]); 
     B= Double.parseDouble (UISAVE[Integer.parseInt(aa[4])]); 
    } 
    if ((aa[1].equals("s")) && (!aa[3].equals("s"))) { 
     A= Double.parseDouble (UISAVE[Integer.parseInt(aa[2])]); 
     if (aa[3].equals(null)) { 
      aa[3]="0"; 
     } 
     B= Double.parseDouble (aa[3]); 
    } 
    if (!aa[1].equals("s")) { 
     A= Double.parseDouble (aa[2]); 
     B= Double.parseDouble (aa[3]); 
    } 
    out[count]=Double.toString(A+B); 
    read(in, out, UISAVE); 
} 

проблема вы сейчас делаете побитовое&, поэтому вам необходимо обновить его использовать условно-и&& вместо этого.

Кроме того, перед доступом индексы массива, как это, вы можете проверить, имеет ли массив достаточно элементов внутри него ...

if (aa.length >= 3) 
{ 
    ... 
} 
Смежные вопросы