Esto puede sonar como una pregunta extraña, pero ¿cómo se puede definir un genérico que tiene que extender una clase Y para implementar una interfaz? Actualmente estoy teniendo una función genérica con el siguiente prototipo:Clase genérica e implementa interfaz
public static <E extends Enum<E>> List<E> buildEnumList(Class<E> enumClass)
Esto funciona igual de intencionado. Mi problema ahora es que quiero restringir aún más las clases pasables a las que son enumeraciones e implementar una interfaz específica Readable
(no en java.lang). Desde un genérico utiliza la misma palabra clave extends
para indicar que se debe implementar una interfaz, no veo ninguna manera de conseguir el siguiente comportamiento seudo:
public static <E extends Enum<E> implements Readable> List<E> buildLexicographicalEnumList(Class<E> enumClass)
También se puede usar una coma para separarlos. – corsiKa
@corsiKa También lo pensé, pero no puedo encontrarlo [en el JLS] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.4). Aunque lo hace para compilar. – assylias
Ahora me preocupa que hagan dos cosas diferentes ... :-( – corsiKa