Pregunta Cómo usar múltiples límites superiores en genéricos


Tengo una interfaz Foo que tiene un tipo genérico -

 public interface Foo<T> {  
     boolean apply(T t);  
 }

Tener otra Barra de clase que implementa esta interfaz, pero lo que quiero es que el Tipo de Barra genérico debería ser una Colección de tipo Interfaz A y B, con la definición que aparece a continuación es un error del compilador.

public class Bar implements Foo<Collection<? extends A & B>>{
  @Override
  public boolean apply(Collection<? extends A & B> collect){
   ...
  }  
}

¿Puede sugerir la forma correcta de lograr esto?

¿Puedo usar múltiples límites solo a nivel de método?


5
2018-02-17 20:28


origen


Respuestas:


¿No funcionaría esto?

public class Bar<T extends A & B> implements Foo<Collection<T>>{
  @Override
  public boolean apply(Collection<T> collect){
   ...
  }  
}

10
2018-02-17 20:37