1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 经常出现空指针异常的场景之空指针给我死

经常出现空指针异常的场景之空指针给我死

时间:2022-12-14 02:57:00

相关推荐

经常出现空指针异常的场景之空指针给我死

前言

作为一名Java菜鸟选手,经常因为会不会出现空指针异常而烦心。空指针带来的烦恼不必多说,轻则被喷排查代码半小时,重则奖金绩效减半,四舍五入等于今年白干。

话不多说,现在就来总结一下经常出现空指针异常的场景。

正式开始前,看看美女先。哈哈哈哈。

场景类型

1、数据库空数据

数据库存null值,其实还是比较容易发现的。但是安全保险,还是建议还是先确认下当前所要使用字段的含义。同时去数据库中抽样遍历下所要使用的字段。注意要,不要只关注一张表,最好涉及到的表都要看下。记住作为一名CRUD选手,也要时刻保持一个谨慎心的。

2、容器空指针

作为一名CRUD男孩你说你不适用容器,那我是不信的。直接上代码,

//1、本身为空。List<String> list = null;//2、map本身key不存在,对于返回值没有校验,直接使用。Map<String,String> map = new HashMap<>();map.put("1","1");String s = map.get(2);// s为null,调用其方法必然空指针异常s.length();

建议:1、使用上层业务返回的容器时,一定要进行空指针校验。可以自己写一个Util,或者使用开源打Util包进行判断。

3、xx.valueOf()

在接口调用的过程中,会存在类型不同,需要转换的场景。最常见的是:将Long类型,转换成String类型,这时候便会调用

String.valueOf(xx);。你不保证别人传递给你的参数会不会有脏数据,即使已经约定好不能传空数据。但是一定要记住,别人的服务一定是不可靠的,可靠性要由自己来保证。自己的代码自己不负责,想当老王么。

Long temp = null;String.valueOf(temp ==null ? "" : temp);

4、注解注入

对于Java的项目,现在基本都基于Spring的。这就避免不了使用Spring提供的IOC功能。记住,当使用注解(@Autowired等等)进行对象注入的时候,一定要先将类提供给IOC进行管理。可以通过注解方式(@Service等等)也可以使用配置文件的方式。推荐使用注解的方式,简单便于维护。

@Autowiredprivate static Role role;public static void main(String[] args) {System.out.println(role.getDesc());}控制台输入:Exception in thread "main" java.lang.NullPointerExceptionat com.pinfine.test.Test02.main(Test02.java:20)

总结

空指针是最让头疼的事情,你不知道什么时候会给你来个NullPointerException。上述场景只是最常见的情况,还会有很多业务场景会出现意想不到的惊喜,我会继续补充遇到空指针的场景。因此,要养成习惯coding的时候,一定要时刻提醒自己,这个对象会是null么,我要不要校验一下他呢。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。