2012-06-09 14 views

Respuesta

7

Todos los campos de miembros de una interfaz son por defecto public, static y final.

Dado que la interfaz interna es static de manera predeterminada, no puede consultar T desde campos o métodos estáticos.

Debido T está asociada a una instancia de una clase, si se asocia con un campo estático o método que se asocia con la clase, entonces no tendría ningún sentido

+1

Gracias, eso responde a la primera parte de la pregunta. ¿Cómo consigo que el tipo T visto en la interfaz interna sea del mismo tipo que el de la interfaz que lo contiene? – auser

+2

Quitaría la primera oración ya que es innecesaria y engañosa. Sí, los campos de la interfaz son implícitamente "públicos estáticos finales" pero esto tiene que ver con los métodos de interfaz * que son implícitamente "públicos abstractos". El hecho de que las interfaces internas sean implícitamente 'estáticas' es lo que es importante. –

+0

interfaz interna bien es igual que el campo interno –

1

¿Qué tal algo como esto.

public interface A<T> { 

    interface B<T> extends A<T>{ 

     T foo(); 
    } 

} 
Cuestiones relacionadas