在范型出来之前,使用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>> {
//你的代码
}
这样就简洁多了