空指针异常(java)
原因:当调用一个为空对象的成员属性或方法时,会报NullPointerException
public class TestNull {
public static void main(String[] args) {
UserK user = new UserK();
UserK user1 = null;
//1.当一个对象为空,调用其成员方法时会报空指针异常
// System.out.println(user1.name1);//error
//调用静态方法则不会,是因为静态方法跟类有关,存在方法区内
System.out.println(user.name);
// 拆箱:Integer.intValue
// 装箱:Integer.valueOf(int)
//2.由于user.id底层会自动调用intValue进行拆箱,然而id=null,test需要传入的是int类型,所以会报空指针异常
// test(user.id);//error
java.util.List<String> list = null;
//3.foreach底层调用了Iterator.hasNext(),迭代器是一个成员方法,所以会报空指针异常
for ( String s : list ) {
System.out.println(s);
}
}
public static void test(int id) {
System.out.println("打印主键 = " + id);
}
}
class UserK {
public String name1 = "lisi";
public static String name = "zhangsan";
public Integer id = null;
}