Java优雅代码--String容错处理 NullPointerException

来源:互联网 发布:驾照金手指软件下载 编辑:程序博客网 时间:2024/06/10 15:02

String name; if (name.equals("") {} 如何避免空指针错误NullPointerException?

下面是应用场景:

record.getName() 返回一个String类型的变量name

这个name可能是null

发现有程序员写了这样一段代码

下面这种写法就容易报NullPointerException  下面这种就是一种严重错误的写法, 当name=null的时候,下面的句中 name.equals("")被执行的时候,就会运行异常(因为null对象根本不可能有equal方法可调用),

根本不会进行name == null的判断。 导致程序崩溃

public class ContactsService {
String name = record.getName();// 若name本身为空字符串,则传值nameEnif (name.equals("") || name == null) {    dto.setName(record.getNameEn());} else {
dto.setName(record.getName());
}

改成下面的,就不会发生异常

String name = record.getName(); // 若name本身为空字符串,则传值nameEnif (name == null || name.equals("")) { dto.setName(record.getNameEn()); } else { dto.setName(record.getName());
}

但是,还有一个问题,如果name为空格字符串呢? 需要trim()操作

下面是Frank的优雅代码。保证任何情况下都不会NullPointerException!

public class ContactsService {// 若name本身为空字符串,则传值nameEnString name = record.getName();name = name == null ? "" : name.trim();if (name.equals("")) {    dto.setName(record.getNameEn()); } else {    dto.setName(record.getName());
}


0 0
原创粉丝点击