一、前言
为了防止项目中出现空指针异常,我们经常在代码中使用!= null判断。当然这样写也能改变问题,可是不管是什么数据类型,都是都这样子写,可是真的不好看啊。今天来介绍几个便捷的方式
二、如何解决
1.首先了解一下,是判断什么类型的不为空呢,是字符串,还是对象,还是集合呢?
三、代码示例
StringUtils 是 Apache Commons Lang 库中的一个工具类,用于处理字符串相关的操作。它提供了许多静态方法,如判断字符串是否为空、拼接字符串、去除字符串两端的空格等。
public static void main(String[] args) {
String str1 = "Hello";
String str2 = null;
// 判断字符串是否为空或null
boolean isEmpty = StringUtils.isEmpty(str2); // true
boolean isNotEmpty = StringUtils.isNotEmpty(str1); // true
System.out.println("isEmpty======: " + isEmpty);
System.out.println("isNotEmpty======: " + isNotEmpty);
// 拼接字符串
String concatenated = StringUtils.join(new String[]{"Hello", "World"}, " "); // "Hello World"
// 去除字符串两端的空格
String trimmed = StringUtils.trim(" Hello World "); // "Hello World"
System.out.println("concatenated=======: " + concatenated);
System.out.println("trimmed=====: " + trimmed);
}
ObjectUtils 也是 Apache Commons Lang 库中的一个工具类,用于处理对象相关的操作。它提供了许多静态方法,如判断对象是否为空、比较对象、获取对象的默认值等。
public static void main(String[] args) {
Object obj1 = "Hello";
Object obj2 = null;
// 判断对象是否为空(null)
boolean isNull = ObjectUtils.isEmpty(obj2); // true
boolean isNotNull = ObjectUtils.isNotEmpty(obj1); // true
System.out.println("isNull=======: " + isNull);
System.out.println("isNotNull=========: " + isNotNull);
// 获取对象的默认值
Object defaultIfNull = ObjectUtils.defaultIfNull(obj2, "Default");// "Default"
System.out.println("defaultValue========: " + defaultIfNull);
}
CollectionUtils 是 Apache Commons Collections 库中的一个工具类,用于处理集合(List、Set等)相关的操作。它提供了许多静态方法,如判断集合是否为空、集合的交集、并集、差集等。
四、总结
1.使用StringUtils.isEmpty和StringUtils.isNotEmpty来优雅地判断字符串是否为空或null。
2.使用ObjectUtils.isEmpty和ObjectUtils.isNotEmpty来检查对象是否为null(它们不检查非字符串对象的“空”状态)。
3.使用CollectionUtils.isEmpty结合对集合本身的null检查来判断集合是否为空。