在範型出來之前,使用map時可能會寫如下的代碼
Map accounts = new HashMap(); // 無範型
...
Account a = (Account) accounts.get("Cedric");
而實際上,每次寫上述代碼的時候都要做類型轉換是件很煩人的事情 ,我更想寫出下面的代碼
Map m = new HashMap(); // 無範型
Account a = m.get("Cedric");
這在jdk5之前是不太可能的。
jdk5中的範型可以幫我們做到這些,有了範型,就可能會寫出如下的代碼
Map<String, List<Account>> accounts =
new HashMap<String, List<Account>>();
但是這樣的代碼又引出了新的問題,它不符合 DRY( Don't repeat yourself ).
的原則 ,每次要寫出這樣的代碼不但很煩人,還降低了程序的可讀性
不過可以採用如下的方法讓工作更簡單些:
public class AccountMap extends HashMap<String, List<Account>> {
//你的代碼
}
這樣就簡潔多了