深入了解Java开发中的空指针问题

开课吧小白2021-08-09 11:51

在Java学习中,有时会遇到空指针的问题,Java的任何对象是都有可能是空的,所以如果我们调用到了这个空对象的方法的时候,就会出现空指针异常,可以说是只要学习使用Java的人就多多少少都常见的一个类型。而当然我们会有办法来避免这类异常的发生,接下来就看看Java开发中的空指针问题到底是怎么回事吧。

1、包装类型的空指针问题

public class NullPointTest {

    public static void main(String[] args) throws InterruptedException {
        System.out.println(testInteger(null));
    }

    private static Integer testInteger(Integer i) {
        return i + 1;  //包装类型,传参可能为null,直接计算,则会导致空指针问题
    }
}

2、级联调用的空指针问题

public class NullPointTest {
    public static void main(String[] args) {
       //fruitService.getAppleService() 可能为空,会导致空指针问题
        fruitService.getAppleService().getWeight().equals("OK");
    }
}

3、Equals方法左边的空指针问题

public class NullPointTest {
    public static void main(String[] args) {
        String s = null;
        if (s.equals("公众号:Java后端,666")) { //s可能为空,会导致空指针问题
            System.out.println("666");
        }
    }
}

4、ConcurrentHashMap这样的容器不支持Key,Value为null。

public class NullPointTest {
    public static void main(String[] args) {
        Map map = new ConcurrentHashMap<>();
        String key = null;
        String value = null;
        map.put(key, value);
    }
}

5、集合,数组直接获取元素

public class NullPointTest {
    public static void main(String[] args) {
        int [] array=null;
        List list = null;
        System.out.println(array[0]); //空指针异常
        System.out.println(list.get(0)); //空指针一场
    }
}

6、对象直接获取属性

public class NullPointTest {
    public static void main(String[] args) {
        User user=null;
        System.out.println(user.getAge()); //空指针异常
    }
}

以上就是开课吧广场小编为大家整理发布的“深入了解Java开发中的空指针问题”一文,向大家推荐一个高质量公开课,《从0到1认识服务网格》,击下方图片立即免费领取。

java

 

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享