java 定义泛型类的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 定义泛型类的问题相关的知识,希望对你有一定的参考价值。

定义一个泛型类public class Test<T extends List>
一个类继承这个泛型类但不实现class ss<T extends List> extends Test<T extends List>但extends会报错

为什么这个不报错,该怎么写

class ss<T extends List> extends Test<T>
    

这样才行

泛型类已经创建,继承或实例化时<>内不要再写 extends ***

其实写<>都是多余

class ss<T extends List> extends Test
    

参考技术A 因为ss这个类也是抽象的,要在前加absrtact

Java泛型类

定义简单泛型类

一个泛型类(generic class)就是具有一个或多个类型变量的类,泛型类可以看作是普通类的工厂。下面以一个简单的Pair类作为例子。

public class Pair<T> {
    private T first;
    private T second;

    public Pair() {
        this.first = null;
        this.second = null;
    }

    public Pair(T first, T second) {
        this.first = first;
        this.second = second;
    }

    public T getFirst() {
        return this.first;
    }

    public T getSecond() {
        return this.second;
    }

    public void setFirst(T first) {
        this.first = first;
    }

    public void setSecond(T second) {
        this.second = second;
    }
}

Pair类包含一个类型变量T,用尖括号括起来(Pair),并放在类名的后面。泛型类也可以包含多个类型变量,例如,可以重新定义Pair类,使first和second域使用不同的类型:

public class Pair<T,U> {
    private T first;
    private U second;

    public Pair() {
        this.first = null;
        this.second = null;
    }

    public Pair(T first, U second) {
        this.first = first;
        this.second = second;
    }

    public T getFirst() {
        return this.first;
    }

    public U getSecond() {
        return this.second;
    }

    public void setFirst(T first) {
        this.first = first;
    }

    public void setSecond(U second) {
        this.second = second;
    }
}

note

一般类型变量使用大写形式,且比较短。在Java库中,使用E表示集合的元素类型,K和V分别表示表的关键字与值的类型。T(需要时还可以用临近的字母S和U)表示“任意类型”。

以上是关于java 定义泛型类的问题的主要内容,如果未能解决你的问题,请参考以下文章

java 泛型类的定义

另一个泛型类的 Java 泛型类

Java泛型类

Java自用练习题-自定义泛型类的使用

java泛型——泛型类泛型方法泛型接口

JAVA——泛型类和泛型方法(静态方法泛型)