2012-06-09 7 views

Odpowiedz

7

Wszystkie pola członkowskie interfejsu są domyślnie public, static i final.

Ponieważ interfejs wewnętrzny to domyślnie static, nie można odwoływać się do T ze statycznych pól lub metod.

Ponieważ T jest faktycznie związana z instancją klasy, gdyby były związane ze statycznym pola lub metody, która jest związana z klasą to nie miałoby sensu

+1

Dzięki, że odpowiada na pierwszą część pytania. Jak uzyskać, aby typ T widoczny w interfejsie wewnętrznym był tego samego typu, co typ interfejsu zawierającego? – auser

+2

Usunąłbym pierwsze zdanie, ponieważ jest niepotrzebne i wprowadzające w błąd - tak, że pola interfejsu są domyślnie "publicznym statycznym końcem", ale ma to związek z metodami * interfejsu *, które są niejawnie "abstrakcyjnym publicznym". Najważniejsze jest to, że wewnętrzne interfejsy są niejawnie "statyczne". –

+0

dobrze wewnętrzny interfejs jest taki sam jak wewnętrzne pole –

1

Jak o czymś takim.

public interface A<T> { 

    interface B<T> extends A<T>{ 

     T foo(); 
    } 

} 
Powiązane problemy