试图证明null时,线程“ main”中的java异常java.lang.NullPointerException

时间:2018-11-23 21:28:10

标签: java null

有人知道为什么theere始终是我的代码中“线程“主” java.lang.NullPointerException中的异常”的错误吗?

public class a16 {
public static void main(String[] args) {

    int[] a = {4, 2, 3};
    int[] b = {1, 5, 3, 5};

    if (sub(mult(a, b), b) == null) {
        System.out.println("f");
    } else {
        for (int i = 0; i < a.length; i++) {
            System.out.println(a[i]);
        }
    }


}

public static int[] mult(int[] a, int[] b) {
    if (a.length == b.length) {
        for (int i = 0; i < a.length; i++) {
            a[i] = a[i] * b[i];
        }
        return a;
    } else {
        return null;
    }

}

public static int[] sub(int[] a, int[] b) {
    if (a.length == b.length) {
        for (int i = 0; i < a.length; i++) {
            a[i] = a[i] - b[i];
        }
        return a;
    } else {
        return null;
    }
}

}

我是Java的新手,这是我大学课程的一部分, 谢谢您的提前答复!

1 个答案:

答案 0 :(得分:0)

由于ab的长度不同,因此您的mult(a, b)将得出null。因此,基本上,您正在调用sub方法,例如-> sub(null, b)->,这意味着当您尝试在a.length方法内的第一步中执行sub时,它将抛出NullPointerException