先看一段代码:
public Object get(String name) {
return map.get(name);
}
其中获取的返回值,可能是字符串,也可能是数字等等。那么调用它的代码,可能就充斥着各种各样的转型:
String value1 = (String)get("key1");
Integer value1 = (Integer)get("key2");
Date value1 = (Date)get("key3");
这些转型的代码,经常弄得代码片段冗长而凌乱,降低了代码的可读性。
其实,我们只要对函数进行一个小改造,就能让这段代码优雅起来:
public T get(String name) {
return (T)map.get(name);
}
于是:
String value1 = get("key1");
Integer value1 = get("key2");
Date value1 = get("key3");
这一看,哇塞,漂亮多了!借用范型,我们巧妙地把转型也“封装”进函数里面了!