线程中的java异常";“主要”;尝试证明null时发生java.lang.NullPointerException
有人知道为什么在我的代码中,theere总是“线程“main”java.lang.NullPointerException中的异常”错误吗线程中的java异常";“主要”;尝试证明null时发生java.lang.NullPointerException,java,null,Java,Null,有人知道为什么在我的代码中,theere总是“线程“main”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(
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;
}
}
公共级a16{
公共静态void main(字符串[]args){
int[]a={4,2,3};
int[]b={1,5,3,5};
if(sub(mult(a,b),b)=null){
系统输出打印项次(“f”);
}否则{
for(int i=0;i
}
我是java新手,这个练习是我大学课程的一部分,
提前感谢您的回答 由于
a
和b
的长度不同,您的mult(a,b)
将计算为null
。因此,基本上你调用的是sub
方法,比如->sub(null,b)
->这意味着当你在sub
方法的第一步中尝试执行a.length
时,它会抛出一个NullPointerException好的,我想我明白你的意思了,谢谢。你知道如何修复代码,如果a和b的长度不相同(在两种方法中),它将打印“f”并返回null吗?@guellich,在a和b的sub和mult方法的开头添加null检查,就像这样,如果(a==null | | b==null){return null;},我认为你的程序应该运行良好