java - 我可以从此例程中得到空指针异常吗?

标签 java nullpointerexception

我用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/

相关文章:

java.lang.NullPointerException 因为我没有访问该表的权限

java - Google 登录按钮空指针异常

java - 填充数组列表的随机索引出现 NullPointerException?

java - 为什么数组出现空指针异常?

java - 如何通过 RMI 传递输入流

c# - C# 中 java SequenceInpustream 类的替代品是什么

java - 需要更改使用的名称 sec :authentication in thymeleaf

java - 使用 Web Crypto API 在 Java 和 JavaScript 之间加密/解密

java - 什么是NullPointerException,我该如何解决?

java - 扑克游戏:使用Java创建套牌