我有一個名爲Identifier的類和一些名爲Variable,Scalar等的所有類都從Identifier擴展的類。使用通配符時Java Hashmap的返回類型
所以,當我宣佈像一個新的Hashmap:
Hashmap<String, ? extends Identifier> hm = new Hashmap<String, ? extends Identifier>();
將返回類型是什麼,當我打電話:
hm.get(String)
因爲很明顯,這樣的事情是無效的:
(? extends Identifier) temp = hm.get(String);
我真的不知道一個解決方案,而不做一些類型轉換或使用通用的對象作爲這兩種類型我都不想做。
這就是'?'的意義。你不完全知道。它最多可以是一個「標識符」。 –