1、泛型类和泛型方法
public class Demo<T>{
public <T> void method(T t){
}
}
2、泛型接口和泛型方法
public interface Demo<I>{
public abstract <I> void method(I);
}
public class DemoImpl<E> implements Demo<E>{
@overrid
public <E> void method(E e){
System.out.println(e);
return e;
}
}
3、泛型通配符
public class Demo{
public static void method(ArrayList<?> list){
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
}
}
}
泛型的上限限定:此时的 泛型?必须是 E的本身或者E的子类
? extends E
泛型的下限限定:此时的泛型?必须是E的本身或者父类
? supper E
如demo:
publice static void getElement1(Collection<? extends Number>)
此时的泛型?必须是Number本身或者Number的子类(如:Integer)
publice static void getElement1(Collection<? supper Number>)
此时的泛型?必须是Number本身或者Number的父类(如:Object)