Wie funktioniert dieser Code? Ich bin total verwirrt ...
%Vor%Mit dieser Syntax erstellen Sie eine anonyme Klasse , die vollkommen legal ist.
Intern werden anonyme Klassen in eine eigene Klasse kompiliert, die als EnclosingClass$n
bezeichnet wird, wobei der Name der umschließenden Klasse vor dem $
-Zeichen steht. und n
erhöht sich für jede weitere anonyme Klasse. Das bedeutet, dass die folgende Klasse erstellt wird:
Dann wird der Code in main
kompiliert, um intern die neu definierte anonyme Klasse zu verwenden:
Sie erstellen eine Instanz (on-the-fly) der anonymen Klasse , die implementiert die Schnittstelle überprüfen.
Ihre Schnittstellenreferenz kann das Objekt der implementierenden Klasse enthalten. Sie implementieren eine anonyme Klasse und weisen sie der Referenz der Schnittstelle zu, die in JAVA absolut zulässig ist.
Es ist eine anonyme Klasse. Ihre Klasse check ist eine Schnittstelle. Anonyme Klasse definiert eine Implementierung der gegebenen Schnittstelle im laufenden Betrieb. So können Sie keine separate Klasse für die Implementierung von Interface erstellen. Dieser Ansatz ist nur nützlich, wenn Sie wissen, dass Sie diese Implementierung nirgendwo sonst im Code benötigen.
Ich hoffe, diese Erklärung hilft !!