operador - Doble restricción genérica en clase en Java: extiende ConcreteClass & I
object[] en java (2)
¿Hay alguna manera de definir una restricción genérica en Java que sería análoga a la siguiente restricción genérica C #?
class Class1<I,T> where I : Interface1, Class2 : I
Estoy tratando de hacerlo así:
class Class1<I extends Interface1, T extends I & Class2>
Pero el compilador se queja de la parte "Class2": el parámetro Type no puede ser seguido por otros límites.
Este código compila aquí bien:
interface Interface1 {}
class Class2 {}
class Class1<I extends Interface1, T extends Class2 & Interface1> {}
¿Por qué necesitas que escriba allí cuando asumes solo Interface1 de todos modos? (No sabrá nada más sobre I en su clase que sobre la interfaz1 )
La manera más simple que puedo ver de resolver el código de Java es hacer de Class2 una interfaz.
No puede restringir un parámetro de tipo para extender más de una clase o parámetro de tipo. Además, no puedes usar super aquí.