tags:

views:

86

answers:

2

Hi,

I am trying to write something like

public class A implements B<T implements C> {}

and

public abstract class M<I extends P> extends R<I extends P> implements Q<I extends P> {}

but I am getting errors like Multiple markers and syntax error on token extends, expected. Please let me know what is the correct way of doing this.

+2  A: 

There is no implements keyword in generic bounds. It's only extends

Furthermore - you should specify the type parameter only in the class definition, and not in supertypes. I.e.

public class A<T extends C> implements B<T> {}
Bozho
+1  A: 

When you have interfaces in generics, you still have to use the extends keyword.

In your case, if you know what T will be :

public class A<T extends C> implements B<T> {}

If you don't and you simply have to implements B with a C type :

public class A implements B<C> {}

For the second part, once you've defined I you can use it as is in your other generic types :

public abstract class M<I extends P> extends R<I> implements Q<I> {}

Resources :

Colin Hebert