String ~ equals(); 与变量位置问题。空指针异常是为什么。

String ~ equals(); 与变量位置问题。空指针异常是为什么。


package com.geek.controller;

public class Test {

    public static void main(String[] args) {

        isEqual01(null);// false

        isEqual01("a");// true

        isEqual02(null);
        // 这里会报 java.lang.NullPointerException 空指针异常。
        // 而 isEqual01(null);// false 不会。
        // 是因为
        // 问题出现在方法调用上。因为 null 值,并不是一个 String 对象。
        // 而通过声明的 String 对象引用去调用 String 对象的实例方法。当然不可以了。
        // null 调用了方法。
        // null.equals();

        isEqual02("a");// true
    }

    private static void isEqual01(String str) {
        if ("a".equals(str)) {
            System.out.println("true");
        } else {
            System.out.println("false");
        }
    }

    private static void isEqual02(String str) {
        if (str.equals("a")) {
            System.out.println("true");
        } else {
            System.out.println("false");
        }
    }
}

你可能感兴趣的:(Java)