0
HashMap<String, Boolean> mAchBools = new HashMap<String, Boolean>(){{
    put("myBool1", false);
    }
};

HashMap<String, Integer> mAchInts = new HashMap<String, Integer>(){{
    put("myInt1", 0);
    }
};

boolean isEmpty() {
    for (boolean b : mAchBools.values()) if (b) return false;
    for (int i : mAchInts.values()) if (i != 0) return false;           
    return true;            
}

我创建了一个 HashMap 将布尔值和一个带有整数的 HashMap。现在我想要一个方法来检查值是否为“空”(所有布尔值都是假的,所有整数都是 0)。

我运行调试器,我可以看到我在 Hashmap 中的布尔值是假的,但我的方法“isEmpty”仍然返回假。

为什么我的“isEmpty”检查失败?我认为这是布尔值和布尔值之间的区别,但我不确定。

4

1 回答 1

1

Java 自动在 Boolean <> boolean 和 int <> Integer 之间进行转换。所以你的代码在技术上是正确的。

于 2013-10-16T18:27:12.227 回答