作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用Java编写了下面的例程,我需要知道代码是否为空指针安全:
public class TRM_Fields {
public static String returnActualValue(String Staffing_Event,
String CurrentValue, String PriorValue) {
String returnValue;
returnValue = null;
if ("TRM".equalsIgnoreCase(Staffing_Event) && CurrentValue == null
&& PriorValue != null && !"".equalsIgnoreCase(PriorValue)) {
returnValue = PriorValue;
} else {
returnValue = CurrentValue;
}
return returnValue;
}
}
参数 Staffing_Event、CurrentValue 和 PriorValue 中的任何一个都可以为空。
如果它不是空指针安全的,我该怎么做才能实现这一点?
最佳答案
你的方法是安全的。您正确使用"constantString".equals(someObject)
以确保空安全比较。
其他一些评论:
您的方法很难阅读,因为您正在使用 TitleCase
对于 Java 变量,它们应该是 camelCase
.
您只有两个可能的返回值。所以你可以简化你的方法如下:
public static String returnActualValue(String staffingEvent,
String currentValue, String priorValue) {
if ("TRM".equalsIgnoreCase(staffingEvent) && currentValue == null
&& priorValue != null && !"".equalsIgnoreCase(priorValue)) {
return priorValue;
} else {
return currentValue;
}
}
请注意 else
构造不是必需的,因此无论您包含该结构还是简单地具有 return currentValue;
这都是风格问题.
关于java - 我可以从此例程中得到空指针异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24302783/
我是一名优秀的程序员,十分优秀!