如何在不使用原始类型的情况下让 DataStructure
接受类型 B
?
public class Main {
public static void main(String[] args) {
DataStructure<A> bo = new DataStructure<>();
//This doesn't compile because of T extends Comparable<T>
DataStructure<B> bst = new DataStructure<>();
}
}
class DataStructure<T extends Comparable<T>> {
}
abstract class A implements Comparable<A> {
}
abstract class B extends A /*implements Comparable<B> - illegal*/ {
}
我可以将 DataStructure
签名更改为:class DataStructure<T extends Comparable>
但随后我收到有关原始类型的警告。我不能做 class DataStructure<T extends Comparable<? extends T>>
因为当 T == B
时 ? extends T
显然是错误的。
答案 0 :(得分:2)
DataStructure<T extends Comparable<? super T>>