我剛學習如何使用通配符和有界類型參數。我想在傳遞HashMap的方法中使用(我認爲)有界的通配符。我見過有界的類型參數和有界通配符的例子,但是我沒有找到任何能夠告訴我如何將HashMap傳遞給HashMap可以包含不同值對象的方法。HashMap中的Java有界類型參數
Map<Integer, Company>
Map<Integer, Employee>
Map<Integer, Location>
這是我上面列出的第一個地圖的例子:
public Map<Integer, Company> readXML(Map<Integer, Company> companies) {
我想使用類似以下,以使這種方法來對付列出我在Google地圖中的任何一個以上。
public Map<Integer, ?> readXML(Map<Integer, ?> values) {
有人可以告訴我一個關於如何在此方法中使用通配符作爲Map值的例子嗎?
1)我是否需要創建一個擴展值對象(公司,員工,位置)的Map類?
2)或者是否有更好的方法來實現這個目標?換句話說,我做錯了嗎?
謝謝您的建議。
'Company','Employee'和'Location'之間的關係是什麼?他們有一個共同的超類型而不是「Object」嗎? –
要限制參數類型之間或參數與返回類型之間的關係(表示關係),必須使用類型變量。通配符不允許你創建這樣的關係,它們只是約束特定的參數或返回類型。 – RealSkeptic
@AndyTurner - 唯一常見的超類型是Object。我只是試圖想出一個巧妙的(非新手)方法來使用相同的XML解析器方法來解析我的任何Map對象的值。 – Patricia