自定义泛型

社会主义新天地 提交于 2020-02-07 21:58:32

语法:class/interface 类名/接口名{}

注意:T只是泛型的一个标准,使用什么字符都可以,但是都要大写(不要使用特殊字符,建议用T)
可以定义多个泛型,类名后面添加<T,E,F…>,就可以了

定义一个泛型

public class GenericTest<T> {
    private T t;

    public T getT() {
        return t;
    }

    public void setT(T t) {
        this.t = t;
    }
}

定义两个泛型

public class GenericTest2<T,E> {
    private T t;
    private E e;

    public GenericTest2(T t, E e) {
        this.t = t;
        this.e = e;
    }

    public T getT() {
        return t;
    }

    public void setT(T t) {
        this.t = t;
    }

    public E getE() {
        return e;
    }

    public void setE(E e) {
        this.e = e;
    }

    @Override
    public String toString() {
        return "GenericTest2{" +
                "t=" + t +
                ", e=" + e +
                '}';
    }
}

测试类

public class Test {
    public static void main(String[] args) {
        //指定String类型
        GenericTest<String> gt = new GenericTest<>();
        gt.setT("泛型为String类型");
        System.out.println(gt.getT());
        //指定数组类型
        GenericTest<Integer[]> gt2 = new GenericTest<>();
        gt2.setT(new Integer[]{2,3,4});

        GenericTest2<String, Date> gt3=new GenericTest2<>("浩哥",new Date());
        GenericTest2<String, Integer> gt4=new GenericTest2<>("靓仔",18);
        System.out.println(gt3+"\n"+gt4);

    }
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!