防止Java类的基元属性出现NullpointerException

时间:2017-08-02 17:05:32

标签: java nullpointerexception

我们假设我们有一个这样的类:

class Check{
    private int ammount;

public Check(){
  //Notice default empty builder
}

//Setters and getters

现在,我们如何在为原始数据类型调用getter时阻止NullPointerExceptions?

//We cannot do this
...
if (myCheck.getAmmount() == null){
 ....
}

那么,我们怎样才能防止这种情况发生NullPointerException?

5 个答案:

答案 0 :(得分:3)

原始类型不能为空。因此,返回原始类型的方法不能返回null。

答案 1 :(得分:0)

原始数据类型首先不可能有NullPointerException。没有什么可以阻止的。

答案 2 :(得分:0)

像“int”,“boolean”,“float”,“double”这样的原语不能为空。你指的是“整数”,“浮动”,“双重”吗?

答案 3 :(得分:0)

如果NullPointerException从未初始化或专门设置为myCheck.getAmount(),则只有在调用myCheck时才能获得null。在Optional中包装myCheck,因此您的消费者必须对其进行无效检查。

通过阅读您的注释,您可能希望将int值的可能为空的包装器转换为String,因此我建议:

Optional.ofNullable(check).map(c -> String.valueOf(check.getAmount())).orElse("")

答案 4 :(得分:0)

您必须阅读所有问题,对于原始类型,结论不为空,它们具有 默认值 ,但是!不要误解诸如

之类的原语

int,double,char,byte,

使用,例如

字符串,整数,双重 ..

那些可以返回 null 给你。 在这种情况下,我建议您在此处阅读所有可能的答案What is a NullPointerException, and how do I fix it?