我有这个抽象类
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值)
调用该函数我如何扩展抽象类?
答案 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。