泛型

1. 泛型类,泛型方法

1.1 方法先定义后使用

class ObjectTool<T>{
    private T obj;

    public T getObj() {
        return obj;
    }

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

}

 

2.继承

interface Inter<T>{
    abstract void show();
}

2.1 子类明确类型

class InterImpl implements Inter<String>{

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

 

2.2 子类不明确类型

class InterImpl2<T> implements Inter<T> {

    @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));
        }
    }

 

posted @ 2022-04-11 16:51  写代码的小哥哥  阅读(18)  评论(0)    收藏  举报