我使用这个代码:任何人都可以解释为什么这个工程在Java 7而不是Java 6?
public static void printMap(Map<Integer, String> obj) {
for (Map.Entry e : obj.entrySet()) {
if (e.getKey() == 3) {
System.out.println("OK!");
}
}
}
,并在Java 7中的作品,但在Java 6中它给上线的错误:
if (e.getKey() == 3) {
任何人都可以向我解释为什么我得到这个错误?
具体有什么样的错误? – Arran 2013-03-05 17:29:48
在早期版本中,我会说这是一个自动装箱问题。但Java 6确实支持自动装箱。你确定它实际上是Java 6吗? – DerMike 2013-03-05 17:31:58
这是因为你不能==一个对象到一个原语。 Java7理解它是一个Integer,它会自动解除它,但是Java6将需要你参数化Entry。 – entonio 2013-03-05 17:32:28