java.lang.String#isEmpty()与org.apache.commons.lang.StringUtils#isEmpty()的比较
oracles方法的描述称,只有当字符串的长度为0时,它才会返回true,而string utils方法的描述称,该方法还会检查字符串是否为“null”。那我应该用什么方法呢?如果字符串的长度为0(例如“”),那么它自动不是“null”,或者如果我将字符串设置为“null”,然后用oracles方法检查其空性,那么我会得到“false”,那么apaches方法的空检查不是多余的吗?或者我的想法完全错了吗?请帮我理解其中的区别 我倾向于总是使用apache版本。Oracle版本要求您具有非空字符串,因为它是一个实例方法,例如java.lang.String#isEmpty()与org.apache.commons.lang.StringUtils#isEmpty()的比较,java,string,apache-commons,Java,String,Apache Commons,oracles方法的描述称,只有当字符串的长度为0时,它才会返回true,而string utils方法的描述称,该方法还会检查字符串是否为“null”。那我应该用什么方法呢?如果字符串的长度为0(例如“”),那么它自动不是“null”,或者如果我将字符串设置为“null”,然后用oracles方法检查其空性,那么我会得到“false”,那么apaches方法的空检查不是多余的吗?或者我的想法完全错了吗?请帮我理解其中的区别 我倾向于总是使用apache版本。Oracle版本要求您具有非空字符串
String s = null;
s.isEmpty(); <--- throws a NullPointerException
StringUtils.isEmpty(s); <--- returns true
当您不知道是否设置了字符串时,Apache方法非常有用
if (s != null && !s.isEmpty()) {
System.out.print(s)
}
vs
如果
myString
为null
,那么myString.isEmpty()应该如何工作?->“我将我的字符串设置为'null',然后用oracles方法检查它的空值,我会得到'false'”,不,你会得到一个NullPointerException
。如果你用oracle的isEmpty()
检查空字符串,你会得到一个NPEWell,它在apache版本中工作只是不知道oracles方法使用oracle的方法抛出NPEif只要检查if(s!=null&&!s.isEmpty())
if (s != null && !s.isEmpty()) {
System.out.print(s)
}
if (!StringUtils.isEmpty(s)) {
System.out.print(s)
}