use*_*718 -1 java nullpointerexception
我写了这个简单的函数:
private String getOperatorForCardinality(String op)
{
String operator ="";
if(op!=null)
{
if(op.equals(">="))
{
operator = ">=";
}
else if (op.equals("<="))
{
operator = "<=";
}
}
else
{
operator = "empty";
}
return operator;
}
Run Code Online (Sandbox Code Playgroud)
它返回一个字符串。
在主程序中我调用这个函数,当参数为null时,编译器显示NullPointerException错误。原因很清楚,但我不知道如何处理参数传递时的空值。
你发布的代码不可能抛出NPE。错误在其他地方,或者您没有运行您认为的代码(即尚未重新编译等)。
也就是说,您的方法可以简化为:
private static List<String> OPS = Arrays.asList("<=", ">="); // can add more valid ops
private static String getOperatorForCardinality(String op) {
if (op == null)
return "empty";
return OPS.contains(op) ? op : "";
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您不介意嵌套三元:
private static String getOperatorForCardinality(String op) {
return OPS.contains(op) ? op : op == null ? "empty" : "";
}
Run Code Online (Sandbox Code Playgroud)
更少的代码通常是更清晰的代码,并且为错误留下的潜伏空间也更少。
| 归档时间: |
|
| 查看次数: |
1185 次 |
| 最近记录: |