泛型


1. 泛型类,泛型方法

1.1 方法先定义后使用

class ObjectTool{
    private T obj;

    public T getObj() {
        return obj;
    }

    public void setObj(T obj) {
        this.obj = obj;
    }
    public  void show(E t){
        System.out.println(t);
    }

}

2.继承

interface Inter{
    abstract void show();
}

2.1 子类明确类型

class InterImpl implements Inter{

    @Override
    public void show(String s) {
        System.out.println(s);
    }
}

2.2 子类不明确类型

class InterImpl2 implements Inter {

    @Override
    public void show(T t) {
        System.out.println(t);
    }
}

3.通配符 ?

public void forEach(List<?> list){
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
}

3.1 通配符上限

    public void forEach(List<? extends Number> list){
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }

3.2 通配符下限

    public void forEach(List<? super Type> list){
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }