¿qué es una interfaz estática en java?


Estaba leyendo el Mapa.Interfaz de entrada, cuando me di cuenta de que es una interfaz 'estática'. No entendía muy bien lo que es una interfaz estática, y en qué se diferencia de una interfaz normal ?

public static interface Map.Entry<K,V>

Esta es la definición de la interfaz. Documentos aquí: http://docs.oracle.com/javase/6/docs/api/java/util/Map.Entry.html

Author: ROMANIA_engineer, 2011-12-04

2 answers

Tengo curiosidad sobre el caso cuando no es una interfaz interna.

El modificador static solo se permite en clases o interfaces anidadas. En su ejemplo Entry está anidado dentro de la interfaz Map.

Para las interfaces, el modificador static es realmente opcional. La distinción no tiene sentido para las interfaces, ya que no contienen código que pueda acceder al this externo de todos modos.

 31
Author: Jörn Horstmann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-02 18:43:44

La interfaz interna estática y la interfaz interna son las mismas, todas las reglas de acceso son las mismas que con la clase estática interna. Por lo tanto, la interfaz interna solo puede ser accesible si tiene acceso a su clase/interfaz padre. En caso de que a continuación tendrá acceso a la interfaz B solo desde el paquete de la interfaz A, porque A tiene un modificador de acceso predeterminado. POR cierto: la interfaz B podría ser estática o no.

 interface A {
    void testA();
    public interface B {
        void testB();
    }
 } 
 4
Author: Stanislav Levental,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-04 10:36:29