【发布时间】:2016-04-25 16:27:42
【问题描述】:
我知道这很奇怪,但这就是我所拥有的。
我正在编写一个单元测试来检查我的 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()多做。
任何有关澄清和建议的帮助都会有所帮助。
有人遇到过吗?我应该如何解决它?提前致谢!
【问题讨论】:
标签: java android string junit is-empty