我知道这很奇怪,但这就是我所拥有的.
我正在编写一个单元测试来检查我的Android应用程序的逻辑.在测试执行期间,我发现它在该行上失败:
if(!TextUtils.isEmpty(fromFile))
在此之前if语句fromFile等于“”(空字符串),但它以某种方式传递它并与另一个不期望空字符串的逻辑断开.
深入调试我看到fromFile.isEmpty()返回正确的结果,但TextUtils.isEmpty(fromFile)表示它不是空的.
打开源代码,我看到:
public static boolean isEmpty(@Nullable CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
和String.java:
public boolean isEmpty() {
return value.length == 0;
}
我有以下配置:
jdk 1.8.0_77
我想避免应用程序中的整个逻辑支持String.isEmpty()只是为了通过测试,因为我需要在Android API 9之前支持代码,其中String.isEmpty不可用,还有TextUtils.isEmpty()做更多.
任何有关澄清和建议的帮助都会有所帮助.
有人面对过吗?我该如何解决?提前致谢!