java泛型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java泛型相关的知识,希望对你有一定的参考价值。
1.泛型是jdk1.5以后出现的,用于解决安全问题,是一个安全机制
2.好处是将运行时期的异常classCastException转移到了编译时期
3.在java中应用最广泛的地方就是集合
4.在java的api中有<E>和<t> 都是泛型 e代表element t代表type
5.什么时候使用泛型呢?当类中要操作的类型不确定,早期通过object来扩展,现在定义泛型,因为object要强转,麻烦
6.泛型类public class TreeSet<E>
泛型方法public <T> void show(T t)
静态泛型方法public static <T> void show(T t)
泛型接口:public interface Map<K,V>
7.缺点:不能使用子类特有的方法
public static void printIterator0(ArrayList<Integer> al) {
Iterator<Integer> it = al.iterator();
while(it.hasNext()) {
Integer next = it.next();
String string = next.toString();
System.out.println(string);
}
}
/**
* 通配符方式。
* 缺点:不能使用对象中元素的特有方法了。
* */
public static void printIterator(ArrayList<?> al) {
Iterator<?> it = al.iterator();
while(it.hasNext()) {
Object next = it.next();
System.out.println(next);
}
}
/**
* 泛型方式
* 缺点:不能使用对象中元素的特有方法了。
* @param <T>
* */
public static <T> void printIterator2(ArrayList<T> al) {
Iterator<T> it = al.iterator();
while(it.hasNext()) {
Object next = it.next();
System.out.println(next);
}
}
7.向上限定ArrayList<? super E>集合中只能存放E或者E的父类
8.向下限定ArrayList<? extends E>集合中只能存放E或者E的子类
以上是关于java泛型的主要内容,如果未能解决你的问题,请参考以下文章
什么意思 在HashMap之前 ? Java中的泛型[重复]