if语句期间出现NullPointerException错误

时间:2014-05-10 02:35:13

标签: java

我有以下代码 -

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);
}

我收到此错误 -

  

线程“main”java.lang.NullPointerException中的异常     在CMDL.shizzle.april2014.Write.read(Write.java:25)

现在,因为它说错误显然是一个if声明...... if(aa [1] .equals(“s”(& aa [3] .equals(“s”)){ 我已经尝试了大部分能做的事情,但还没有找到解决方案。

谢谢,如果你能提供帮助。

1 个答案:

答案 0 :(得分:0)

按如下方式更新您的if语句:

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)
{
    ... 
}