nullpointerexception Java如何处理参数传递的空值?
我编写了这个简单的函数:
private String getOperatorForCardinality(String op)
{
String operator ="";
if(op!=null)
{
if(op.equals(">="))
{
operator = ">=";
}
else if (op.equals("<="))
{
operator = "<=";
}
}
else
{
operator = "empty";
}
return operator;
}
返回一个字符串
在我调用此函数的主程序中,当参数为null时,编译器显示NullPointerException错误。 原因很清楚,但我不知道如何处理通过参数传递的空值
# 1 楼答案
反其道而行之
# 2 楼答案
这不能引发空指针异常:
# 3 楼答案
这被称为防御性编程,您应该执行以下操作:
您应该考虑您的方法应该如何反应,如果参数为null,是否需要返回null或引发异常?通常情况下,您无法确保参数永远不会为null,因此必须始终进行检查并采取措施
# 4 楼答案
您发布的代码不可能抛出NPE。错误出现在其他地方,或者您没有运行您认为是的代码(例如,没有重新编译等)
也就是说,您的方法可以简化为:
或者,如果您不介意嵌套三元组:
更少的代码通常更清晰,留下更少的地方让bug潜伏