java - Android Eclipse Java 调试关于识别空对象比较的问题

标签 java android eclipse debugging

我在调试以下代码的 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/

相关文章:

java - 如何更新 SWT 组合框中的项目列表?

java - 安装了 Java 7u9 和 Eclipse (Juno) 但 Eclipse 没有看到 JavaFX2

java - JPA 自引用关系定义不正确

java - 当需要嵌套循环时,如何提高空间和时间复杂度 Big(0)?

java - 导入问题 Java TTest

java - 使用 equalsIgnoreCase 检查 ArrayList<String> 包含 ("") 方法

android - 移除ImageButton的图片资源

android - 如何实现模拟位置?

java - 为什么签名的android apk不能在模拟器上运行

Eclipse CDT 无法识别某些 GL 函数,但编译正常