下面的代码抛出NullPointerException
,但我不明白为什么,该对象不是null。
public class A{
int GetValue()
{
return (true ? null : 0);
}
public static void main(String[] args) {
A obj= new A();
obj.GetValue();
}
}
因为它是unboxing
null
到int
(true ? null : 0); // returns null always
返回值是int
,将null
转换为int
将引发npe
当您的方法返回一个原语时,您需要确保该值永远不是null
。您可以通过返回整数
来修复它
Integer GetValue() // allows nulls
{
return (true ? null : 0);
}
int x = GetValue(); //fails
我正在做一项任务来编译Pascal的子集,在初始程序中有一行代码如下: 这让我非常困惑,因为返回一个布尔值或,因此{Bool,Int}中的 中的
我甚至使用过List,但仍然得到空指针,但如果我使用livedata,它会在for a循环中成功更新。它不会返回NULL。为什么只有list或Arraylist返回null
我想了解为什么一段代码不会抛出NullPointerException。 请考虑以下代码: 方法被重复调用,同时以下代码在单独的线程中运行: 只有一个实例。 从不引发NullPointerException。 但是,当方法暂停时,即使暂停0毫秒,也会按预期引发NullPointerException: 我的理解是,在理论上,在检查和调用之间存在竞争条件。在实践中,如果不引入暂停(即从后续方法调用中
这段代码是我用Java Swing制作的Tic-Tac-Toe程序的一部分。为什么在添加用于添加按钮的for语句时返回NullPointerException?
如果参数的类型是int或float,函数应该返回>函数输入的绝对值。 否则,函数应返回“nope” 我已经完成了第一个任务,但我认为我已经完成了任务
下面是我遇到错误的程序: //导入扫描程序类导入java。util。扫描仪; 这些是我得到的错误: