学习目标:浅浅学习开发中String类型判空
学习内容:
`在一般的开发中我使用的是StringUtils中的isEmpty()或者str != null && str.length() > 0来判断,字符串是否为空。
public static boolean isEmpty(@Nullable Object str) {
return str == null || "".equals(str);
}
自5.3版本起,isEmpty(Object)已建议弃用,使用hasLength(String)或hasText(String)替代。
源码如下:
public static boolean hasLength(@Nullable CharSequence str) {
return str != null && str.length() > 0;
}
public static boolean hasLength(@Nullable String str) {
return str != null && !str.isEmpty();
}
public static boolean hasText(@Nullable CharSequence str) {
return str != null && str.length() > 0 && containsText(str);
}
public static boolean hasText(@Nullable String str) {
return str != null && !str.isEmpty() && containsText(str);
}
可以发现hasLength(String str) 中包含isEmpty()方法,
public boolean isEmpty() {
return value.length == 0;
}
也就是说
public static boolean hasLength(@Nullable String str) {
return str != null && str.length != 0;
}
所以hasLength()可以在日后的开发中作为常用的字符串判空工具
明天学习JDK1.8新特性 Optional判空