在Java中,每种类型都有默认值,当您不初始化类的实例变量时,Java编译器将使用这些值代您初始化它们。Null是对象类型的默认值,您也可以手动将null分配给方法中的对象。
Object obj = null;
但是,您不能使用具有null值的对象或(如果使用null值而不是对象)对象,则将引发NullPointerException。
public class Demo { String name = "Krishna"; int age = 25; public static void main(String args[]) { Demo obj = null; System.out.println(obj.age); System.out.println(obj.name); } }
Exception in thread "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:11)
您还可以使用throw关键字在Java中引发NullPointerException。
public class ExceptionExample { public static void main(String[] args) { System.out.println("Hello"); NullPointerException nullPointer = new NullPointerException(); throw nullPointer; } }
输出结果
Hello Exception in thread "main" java.lang.NullPointerException at MyPackage.ExceptionExample.main(ExceptionExample.java:6
根据Java文档,如果您尝试执行NullPointerException-
使用null对象调用a方法(实例)。
访问,修改,打印空值(对象)的字段。
尝试访问(打印/在语句中使用)空值的长度。
抛出一个空值。
访问或修改具有空值的元素/插槽。
意味着如果抛出空值,则会发生空指针异常,这不是向上转换。
public class Demo { public static void main(String args[]) { throw null; } }
Exception in thread "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:5)