Quiero crear una clase que tome dos parámetros. Uno debe escribirse simplemente como T. El otro debe escribirse como algo que se extiende tanto como T como SomeInterface<T>
. Cuando intento esto conExtendiendo T y SomeInterface <T> en Java
public class SomeClass<T, S extends SomeInterface<T> & T>
luego de Java se queja con
"El tipo T no es una interfaz, no se puede especificar como un parámetro acotado"
y si en lugar intento crear una interfaz de S con
public interface TandSomeInterface<T> extends SomeInterface<T>, T
luego se queja de Java con
"No se puede hacer referencia al parámetro de tipo T como un supertipo"
¿Hay alguna forma de hacerlo en Java? Creo que puedes hacerlo en C++ ...?
Tenga en cuenta que las plantillas de C++ son mucho más poderosos que los genéricos de Java. El hecho de que se pueda hacer en C++ no significa que se pueda hacer en Java. –
relacionado: http://stackoverflow.com/a/13261667/697449 –