2011-02-17 11 views
5

tengo un Foo interfaz que tiene un tipo genérico -Cómo utilizar múltiples límites superiores de los genéricos

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

Tener otro barra de la clase que implementa esta interfaz, pero lo que quiero es la genérica tipo de barra debe ser una colección de tipo de interfaz a y B, con el siguiente definición de su error del compilador dar -

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

puede sugerir la forma correcta para lograr esto?

Puedo usar varios límites solo en el nivel de método?

Respuesta

10

¿No funcionaría?

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

aplicar() debe ser público. ;) –

+1

@Peter Lawrey - ya está. – KeithS

+0

Vaya, mi mal .. :( – Premraj

Cuestiones relacionadas