java基础之泛型

泛型的使用:
1、在集合中使用泛型
2、自定义泛型类、泛型接口、泛型方法
3、泛型与继承的关系
4、通配符

1>泛型类
public class DAO<T>{
    public void add(T t){
        ....
    }
}
指定了该类为某个类型的数据服务

2>泛型方法:将数组元素放入到集合中
public <E> List<E> fromArryToList(E[] e,List<E> list){
    for(E e1 : e){
        list.add(e1);
    }
    return list;
}
        Integer[] inti = new Integer[]{1,2,3};
        List<Integer> list1 = new ArrayList<Integer>();
        List<Integer> list2 = order.fromArrayToList(inti, list1);
        System.out.println(list2);

3>泛型与继承的关系
若A是B的子类,那么List<A> 就不是List<B>的子接口
List<Object> list1 = null;
List<String> list2 = new ArrayList<String>();

4>通配符 ?
List<A>、List<B>、、、、、、都是List<?>的子类
eg:
List<?> list = null;
List<Object> list1 = new ArrayList<Object>();
List<String> list2 = new ArrayList<String>();
list = list1;
list = list2;

Boolean addAll(Collection<? extends E> c);
可以放入E的本身或者E的子类
List<? extends Number> list = null;
        List<Integer> list1 = null;
        list = list1;

Boolean addAll(Collection<? supper A> a)
可以存放A本身及其父类
List<? super Number> list = null;
    List<Object> list1 = null;
    list = list1;

5>注意泛型的使用
①方法中不能使用static关键字
原因:泛型只有在实例化时才能确定是什么类型,所以不能使用static关键字
②不能在try{}catch(T e){}声明泛型
③通配符?声明的集合不能添加任何元素进去,唯一例外的是null.






猜你喜欢

转载自geertu.iteye.com/blog/2316898