Ja, wir können es schaffen. Die Definition der verschachtelten Schnittstelle in Java ist wie folgt:
Eine verschachtelte Schnittstelle ist eine Schnittstelle, deren Deklaration im Rumpf einer anderen Klasse oder Schnittstelle auftritt. Eine Schnittstelle der obersten Ebene ist eine Schnittstelle, die keine verschachtelte Schnittstelle ist.
Weitere Informationen finden Sie .
Weiter ...
Ein Grund könnte sein, dass die äußere Schnittstelle eine Methode hat, die eine Callback-Implementierung als Argument verwendet. Die verschachtelte Schnittstelle ist in diesem Fall der Vertrag, den die Callback-Methode implementieren muss. Ich sehe keinen Grund, diese Callback-Schnittstelle auf oberster Ebene zu deklarieren.
%Vor%Eine weitere gute Lektüre auf der Sun-Seite zu diesem Thema ist hier
Beachten Sie insbesondere, dass Sie, wenn Sie eine Schnittstelle implementieren nicht erforderlich, um irgendwelche zu implementieren Schnittstellen darin verschachtelt.
Ja.
Sie hätten das für sich selbst testen können und in ungefähr 30 Sekunden eine völlig definitive, meinungsfreie und risikolose Antwort erhalten.
Auf eine möglicherweise falsche Antwort auf ein Forum für immer zu warten ist im Vergleich keine rationale Art der Befragung.
Sicher .. Sehen Sie sich SOURCE CODE für die java.util.Map-Schnittstelle an. Die Map-Schnittstelle enthält eine geschachtelte Entry-Schnittstelle.
Interessanterweise sagt es im Quellcode einfach
%Vor%aber der Javadoc sagt
%Vor%Ich vermute, das liegt daran, dass verschachtelte Interfaces implizit "public static" sind, obwohl der Quellcode das nicht sagt. (Aber Methoden innerhalb einer Schnittstelle sind implizit öffentlich und können nicht statisch sein, dh nur die Instanzmethoden sind in Schnittstellen zulässig.)
-dbednar 2013-07-02
Wir verwenden es in unserer Anwendung, Schnittstelle innerhalb der Schnittstelle, wobei diese im Grunde genommen für funktionsspezifische Konstanten verwendet wird, so dass zufällig kein anderer neue Konstanten irgendwo anders im Projekt, in Bezug auf diesen Service1, erstellt.
Beispiel Code:
%Vor%Ja, wir können definieren.
Innerhalb der Kartenschnittstelle definieren Sie den Eintrag wie unten. öffentliche Schnittstelle Map {
%Vor%