空指针异常(java)NullPointerException的几种情形

空指针异常(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;
}

猜你喜欢

转载自blog.csdn.net/qq_40143985/article/details/103773230