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

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

package com.geek.controller; public class Test {public static void main(String[] args) {isEqual01(null); // falseisEqual01("a"); // trueisEqual02(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"); } } }

    推荐阅读