当我运行它时,我遇到了一个空指针异常:
--basedir=
堆栈跟踪: 线程“main”java.lang.NullPointerException中的异常 在com.mypackage.test.main(test.java:10)
为什么在此行抛出空指针: 长c =总和(a,b);
答案 0 :(得分:-1)
由于您的方法sum(final long... values)
使用了基元,因此当null
为Long value1 = 1L;
Long value2 = 2.0L;
sum(value1, value2); // value1 and value2 will be unboxed from Long to long,
// and then used in the method
时,您不能简单地将Long值放在方法中。
对于有效的长值,会发生这种情况:
Long value1 = null;
Long value2 = null;
sum(value1, value2); // value1 and value2 will be unboxed from Long to long,
// giving an error because they are null, which is not a valid primitive value
对于无效的长值,会发生这种情况:
Long value1 = null;
Long value2 = null;
if(value1 == null || value2 == null) return; // or something else like continue, logging, etc.
sum(value1, value2);
尝试这样的事情:
null
或者,如果您仍想将值相加并将0
计为Long value1 = null;
Long value2 = null;
value1 = value1 != null ? value1 : 0L;
value2 = value2 != null ? value2 : 0L;
sum(value1, value2);
,请使用此选项:
sum
或者,将Long
方法的参数类型更改为long
而不是<button onClick="reply_click(this)">Show</button>
<script>
function reply_click(e) {
$(e).next("h4").toggle("slow");
}
</script>
,并在方法中执行这两项检查之一。