举个最常用的例子好了,对于集合类List,你知道可以往里add Object型的对象,也就是任何对象。但在未知环境里,你只允许往里add String型的对象,或者你需要在不转型的情况下直接往出拿里面的对象,那么就可以用泛型,代码如下
List list1 = new ArrayList(); 此时可以list.add(object) list.add(string) 你可以放任意对象
但如果我只需要创建字符串型的集合,那么
List<String> list2 = new ArrayList<String>(); 这样,除String以外的类型就存不进去了
取的时候
String str1 = (String) list1.get(0); 需要转型
String str2 = list2.get(0); 不需要转型
另外,泛型还可用于方法,比如
public T getValue(List<T> list){
处理list集合,list里存什么类型的对象,方法返回的结果就是什么类型的对象
}
还有一些其他的东西 比如<T extends ?>等等这些用法,你慢慢查吧,这东西很复杂 |