我使用這個代碼:任何人都可以解釋爲什麼這個工程在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