其他分享
首页 > 其他分享> > 编写代码,大意不得

编写代码,大意不得

作者:互联网

编写代码需谨慎

空指针问题

在编写代码的时候,即使判断了不能为null值,但依旧出现java.lang.NullPointerException问题;明明实体能能获取到信息,但还是出现了java.lang.NullPointerException.其实这些问题都是很见到但是大意率最高的地方.

实例1(集合类判空)

List<String> list= service.getAnlaufVehicleVinList();
            if (list.size() == 0 || list== null) {
                 System.out.println("空集合");
            }

如上代码看似没有问题,该判断的都判断了.但是如果getAnlaufVehicleVinList()这个方法返回的是个null值,你就会出现java.lang.NullPointerException问题.
因为if里面先判断的是list.size() == 0,null值调用方法直接就报空指针问题,不会去执行后面的条件.
所以不管是什么的判断,是否为null都应该写在最前面

List<String> list= service.getAnlaufVehicleVinList();
if (list== null || list.size() == 0) {
    System.out.println("空集合");
}

实例2(字符串类判断内容是否相等)

if (paramStr.equals("str")) {
    System.out.println(paramStr);
} 

如上代码是一个简单的判断字符串内容是否相等的代码,逻辑上是没有问题的,但是我们在不确定参数是否有值,或者是否存在时,不应该冒null风险,而应该把常量放在equals()方法前面,这样不管参数是什么样的存在都不会有空指针的问题

if ("str".equals(paramStr)) {
    System.out.println(paramStr);
} 

实例3(字符串判空)

if (paramStr == null || paramStr.length() == 0){
	System.out.println("空字符串");
}

如上代码运行起来没有问题,但是看起来代码冗余,可以使用org.apache.commons.lang下的StringUtils工具类,有很多对字符串做处理的方法

if (StringUtils.isEmpty(sstCode)) {
    System.out.println("空字符串");
}

实例4(实体对象类)

User user ;
if(true){
	System.out.println(user.getUsename());
}

如上代码在初始化时,创建了一个变量,但是并没有给变量赋值,所以依然会出现空指针的问题

User user ;
if(true){
	user = new User();
	System.out.println(user.getUsename());
}

敬请期待…

标签:代码,list,System,println,实例,大意,编写,null,out
来源: https://blog.csdn.net/qq_43300204/article/details/113743264