1. 对象判空
- 基本判空:
if (object != null) {
// 处理非空对象
}
2. 字符串判空
-
使用
String
的isEmpty()
方法:
if (string != null && !string.isEmpty()) {
// 处理非空字符串
}
-
使用
String
的isBlank()
方法(JDK 11及以上):
if (string != null && !string.isBlank()) {
// 处理非空且非空白字符串
}
3. 集合判空
-
判空集合(如 List, Set, Map):
if (collection != null && !collection.isEmpty()) {
// 处理非空集合
}
-
判空 Map:
if (map != null && !map.isEmpty()) {
// 处理非空 Map
}
4. 数组判空
- 判空数组:
if (array != null && array.length > 0) {
// 处理非空数组
}
5. Java 8 Optional
- 使用
Optional
:
Optional<String> optionalString = Optional.ofNullable(string);
if (optionalString.isPresent()) {
// 处理非空值
String value = optionalString.get();
}
6. Apache Commons Lang
-
使用 Apache Commons Lang 的
ObjectUtils
:
if (!ObjectUtils.isEmpty(object)) {
// 处理非空对象
}
-
使用
StringUtils
:
if (StringUtils.isNotEmpty(string)) {
// 处理非空字符串
}
7. Guava
- 使用 Guava 的
Strings
:
if (!Strings.isNullOrEmpty(string)) {
// 处理非空字符串
}
8. 自定义工具类
- 自定义判空工具类:
public static class Validator {
public static boolean isEmpty(Object obj) {
if (obj == null) return true;
if (obj instanceof String) return ((String) obj).isEmpty();
if (obj instanceof Collection) return ((Collection<?>) obj).isEmpty();
if (obj instanceof Map) return ((Map<?, ?>) obj).isEmpty();
if (obj.getClass().isArray()) return Array.getLength(obj) == 0;
return false;
}
}