Java 空字符串等于结果

2022-09-02 02:08:53

请帮助我在java中如何使用nread.equals使用空值?例外情况是否存在问题?三种情况:

boolean result1,result2, result3;

    //1st case
    String string1 = null;
    String string2 = null;
    result = string1.equals(string2);
    //2nd case
    String string1 = "something";
    String string2 = null;
    result2 = string1.equals(string2);
    //3rd case 
    String string1 = null;
    String string2 = "something";
    result3 = string1.equals(string2);

结果的价值是什么?我期望这个值:

结果1为真;
result2 是 false;
结果3为假;


答案 1

不能使用取消引用(点,'.')运算符来访问实例变量或调用实例上的方法(如果该实例为 .这样做将产生 .nullNullPointerException

通常的做法是使用您知道为非 null 的内容进行字符串比较。例如。"something".equals(stringThatMayBeNull)


答案 2

用于比较字符串或任何其他对象(如果您使用的是 JDK 7 或更高版本)。它将在不引发异常的情况下处理空值。在这里查看更多内容:how-do-i-compare-strings-in-javaObjects.equals()

如果您没有运行 JDK 7 或更高版本,则可以从中复制该方法,如下所示:equalsObjects

public static boolean equals(Object a, Object b) {
    return (a == b) || (a != null && a.equals(b));
}