Java类泛型类引用

时间:2018-01-17 17:42:09

标签: java generics

我有这个抽象类

public abstract class AbstractA<T extends Comparable<? super T>> {
    protected T value;
}

和我的班级

public class A<T> extends AbstractA {
}

我想在类a

中使用compareTo函数

但java给了我错误:

  

Comparable类型中的compareTo(捕获#5-of super super#4-of?)方法不适用于参数(Comparable)

该功能如下:

protected find(Comparable value){
    if( this.value.compareto(value) == 0){
    //
    }
}

但是应该用(T值)

调用该函数

我如何扩展抽象类?

1 个答案:

答案 0 :(得分:0)

要扩展它,您需要指定实现Comparable的通用接口。例如:

public class A<T extends Comparable<? super T>> extends AbstractA<T> {
    // ...
}

或具体课程:

public class A extends AbstractA<String> {
    // ...
}

AbstractA实施 Comparable。如果您希望A实施Comparable,则需要将其添加为implements子句。 E.g。

public class A extends AbstractA<String> implements Comparable<String> {

    @Override
    public int compareTo(String arg0) {
        return 0;
    }
}

要理解泛型,有a good Java tutorial