Reputation: 18068
How to make DataStructure
to accept type B
without using raw types?
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*/ {
}
I can change DataStructure
signature to: class DataStructure<T extends Comparable>
but then I get warning about raw type. I can't do class DataStructure<T extends Comparable<? extends T>>
because when T == B
the ? extends T
is obviously false.
Upvotes: 0
Views: 23