I have a super class with a signature like
public abstract class Foo<C extends Comparable<? super C>>{..}
So the C class is supposed to be a Comparable object.
I want to use org.joda.time.Instant (version 1.6) as the type parameter in a subclass
public class SubFoo<Instant>
unfortunately i get this error:
Bound mismatch: The type Instant is not a valid substitute for the bounded parameter <C extends Comparable<? super C>> of the type BigtablePoller<T,C>
The Instant class extends AbstractInstant which implements Comparable (no type parameters)
Is there any way around this issue?
The only way i have been able to make it work is to change Foo to:
@SuppressWarnings("rawtypes")
public abstract class Foo<C extends Comparable> {}
I would like to avoid the warning and Josh Bloch says not to use raw types in new code (effective java Item 23).
Joda time 1.6 doesn’t support Generics so there are three options.