page contents

教你从容应对java空指针异常NullPointerException

当我们创建一个引用类型的变量时,实际上是创建了一个指向该变量的一个指针,例如: Person tom = new Person(); 这种情况下是,tom 其实是指向Person对象的一个指针。 如果我们访问一个没...

当我们创建一个引用类型的变量时,实际上是创建了一个指向该变量的一个指针,例如:



Person tom = new Person();

这种情况下是,tom 其实是指向Person对象的一个指针。

如果我们访问一个没有初始化的对象时,就会出现空指针异常。例如,我们声明了一个Person对象tom,而没有给tom赋值(初始化),这样再调用tom的方法是就会出现空指针异常。



package com.codingdict;

public class Q1 {
public static void main(String[] args) {
Person p=null;
p.getName();

}
}

class Person{
public void getName() {
System.out.println("tom");
}
}



package com.codingdict;
public class Q1 {
public static void main(String[] args) {
// s 为null, 当调用s的方法时会抛出空指针异常
String s = null;
s.toLowerCase();
}
}

输出结果如下:



Exception in thread "main" java.lang.NullPointerException
at com.codingdict.Q1.main(Q1.java:6)

如果是方法我们需要对方法参数做出判断:



static void hello(String name) {
if (name!=null) {
System.out.println("Hello,"+name.toUpperCase());
}
}

java 避免空指针的方法:

  1. 使用final修饰符强制初始化。

  2. 避免在方法中返回null,例如返回空集合。

  3. 使用注释@NotNull和@Nullable

  4. 快速失败,并使用断言避免空对象在整个应用程序中传播,因为它们不应为空。

  5. 首先将equals与已知对象一起使用: if(“knownObject”.equals(unknownObject)

  6. 使用valueOf()而不是toString()。

  7. 使用null安全StringUtils方法StringUtils.isEmpty(null)。

  • 发表于 2020-01-15 10:40
  • 阅读 ( 771 )
  • 分类:Java开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1312 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章