java是强类型的语言,不通类型之间是需要转换的----但也并不是所有的类型之间都可以相互转换。
1.4的时候:针对hashtable
class Hashtable {
Object put(Object key, Object value) {...}
Object get(Object key) {...}
...
}
而1.5的时候,是这样的:
class Hashtable<Key, Value> {
...
Value put(Key k, Value v) {...}
Value get(Key k) {...}
}
1.4的时候:
import java.util.Hashtable;
class Test {
public static void main(String[] args) {
Hashtable h = new Hashtable();
h.put(new Integer(0), "value");
String s = (String)h.get(new Integer(0));
System.out.println(s);
}
}
1.5往后:
import java.util.Hashtable;
class Test {
public static void main(String[] args) {
Hashtable<Integer, String> h = new Hashtable<Integer, String>();
h.put(new Integer(0), "value");
...
}
}
可以看到,1.5引入泛型之后,在特定环境下弱化了java当中的变量类型。
这样可以减少类型转换造成的异常,同时也减少了代码的编写量。