Extending both T and SomeInterface<T> in Java

Posted by Graeme Moss on Stack Overflow See other posts from Stack Overflow or by Graeme Moss
Published on 2010-03-30T07:46:10Z Indexed on 2010/03/30 7:53 UTC
Read the original article Hit count: 311

Filed under:
|
|
|

I want to create a class that takes two parameters. One should be typed simply as T. The other should be typed as something that extends both T and SomeInterface. When I attempt this with

public class SomeClass<T, S extends SomeInterface<T> & T>

then Java complains with

"The type T is not an interface; it cannot be specified as a bounded parameter"

and if instead I attempt to create an interface for S with

public interface TandSomeInterface<T> extends SomeInterface<T>, T

then Java complains with

"Cannot refer to the type parameter T as a supertype"

Is there any way to do this in Java? I think you can do it in C++...?

© Stack Overflow or respective owner

Related posts about java

Related posts about generics