我在调试以下代码的 Android 应用程序时发现了一个非常奇怪的行为:
private String process(byte[] item) {
if(item == null) {
item = new byte[0];
}
//byte val = item[0];
//String str = "Val = " + Integer.toString(val);
//Log.e(TAG, str);
[...]
return rez;
}
有时,在调试时,当“ITEM”是一个非空变量时,执行步骤在“IF” block 内。更糟糕的是,Eclipse 的表达式 View 实际上将“ITEM”列为非空分配变量,而“item == null”列为 false。只要注释行保持注释,这似乎就会发生,并且它会发生在 sim 和设备上。
有什么想法吗?
我正在使用 Eclipse 3.7.1、最新的 Android SDK 以及各种 1.6+ 模拟和 2.1+ 设备。
最佳答案
尝试
if(item==null)
(没有空格)。 它对我有用。
编辑 在程序布局发生另一次更改(即通过删除评论)后错误又出现了
关于java - Android Eclipse Java 调试关于识别空对象比较的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9429252/