NullPointerException是当我们为对象引用分配空值时。
当程序尝试使用保存空值的对象引用时,可能会引发NullPointerException。
我们将研究如何避免NullPointerException。有多种方法可以避免此异常:
1)为了避免NullPointerException,我们应该记住一件事,即在使用之前必须使用指定的值初始化所有对象引用。
public void display(String str) {
if (str.equals("Java")) {
System.out.println("Java");
}
}在上述情况下,如果将参数str作为空值传递,则会发生NullPointerException。可以如下编写相同的方法来避免NullPointerException。
public void display(String str) {
if ("Java".equals(str)) {
System.out.println("Java");
}
}2)我们应该为参数添加一个空检查,并在需要时抛出IllegalArgumentException。
public int CountClassObjects(Object[] count) {
if (count == null) throw new IllegalArgumentException("No class objects is refernced");
return count;
}3)我们应该使用String.valueOf()代替toString()方法。对象obj = null;
//打印null- System.out.println(String.valueOf(obj)); //该语句将抛出java.lang.NullPointerException- System.out.println(obj.toString());
示例:引发NullPointerException
public class NullPointerExceptionClass {
public static void main(String[] args) {
String str = null;
System.out.println("Display String length is " + str.length());
System.out.println("The String representation is " + str.toString());
}
}输出结果
D:\Programs>javac NullPointerExceptionClass.java D:\Programs>java NullPointerExceptionClass Exception in thread "main" java.lang.NullPointerException at Java7.main(Java7.java:4)
示例:取消引发NullPointerException
public class UnRaisingNullPointerClass {
public static void main(String[] args) {
String str = null;
System.out.println("Display String is " + str);
System.out.println("Display String value is " + str.valueOf(str));
}
}输出结果
D:\Programs>javac UnRaisingNullPointerClass.java D:\Programs>java UnRaisingNullPointerClass Display String is null Display String value is null