任何人都可以解释我是如何从这行代码中抛出空指针异常的:
if (data != null && data.isActive()) {
Run Code Online (Sandbox Code Playgroud)
方法体isActive()只是:
public Boolean isActive()
{
return active;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
小智 14
在java中,有一种叫做autoboxing的东西,当原始值被对象类型包装时,反之亦然.
所以,在你的代码中有一个方法:
public Boolean isActive()
{
return active;
}
Run Code Online (Sandbox Code Playgroud)
请注意,您正在返回Boolean(对象类型),而不是boolean(基本类型).
返回值将在if语句中使用.
if (data != null && data.isActive()) {
Run Code Online (Sandbox Code Playgroud)
当java data.isActive()在您的if语句中遇到它时,它会尝试将布尔值转换为原始布尔值,以将其应用于您的逻辑操作.
但是你active的isActive()方法中的变量是null,所以java无法将这个变量解包为boolean原始值,你得到了Null pointer exception.
| 归档时间: |
|
| 查看次数: |
1536 次 |
| 最近记录: |