2012-06-09 11 views

risposta

7

Tutti i campi membro di un'interfaccia sono per impostazione predefinita public, static e final.

Poiché l'interfaccia interna è static per impostazione predefinita, non è possibile fare riferimento a T da campi o metodi statici.

Perché T è in realtà associato con un'istanza di una classe, se sono stati associati con un campo statico o un metodo che è associato con classe di allora non avrebbe alcun senso

+1

Grazie, questo risponde alla prima parte della domanda. Come si ottiene che il tipo T visto nell'interfaccia interna sia dello stesso tipo a quello dell'interfaccia contenente? – auser

+2

Rimuoverei la prima frase perché non è necessaria e fuorviante - i campi di interfaccia yes sono implicitamente 'public static final ', ma questo ha a che fare con i metodi dell'interfaccia * che sono implicitamente' abstract pubblici'. Il fatto che le interfacce interne siano implicitamente 'statiche' stesse è ciò che è importante. –

+0

L'interfaccia interna del pozzo è uguale al campo interno –

1

Che ne dite di qualcosa di simile.

public interface A<T> { 

    interface B<T> extends A<T>{ 

     T foo(); 
    } 

} 
Problemi correlati