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).