Wenn ein Marker-Interface keine Methoden, wie funktioniert es?
Ich bin mir bewusst, was marker-interface ist, und wenn wir Sie brauchen, es zu benutzen. Eine Frage ist immer noch nicht klar für mich. Wenn ein marker-interface keine Methode oder Körper, wie funktioniert es bei der Laufzeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einem marker-interface nicht "Arbeit" als solche. Wie der name schon sagt, es ist einfach markiert eine Klasse als von einem bestimmten Typ. Einige andere code ist zu prüfen, die für die Existenz von marker und etwas tun, basiert auf diesen Informationen.
Diesen Tagen Anmerkungen oft führen die gleiche Rolle, die marker-interfaces zuvor.
"Some other code has to check for the existence of the marker and do something based on that information."
.,Könnten Sie ein Beispiel/Szenario für die gleichen,Cloneable
oderSerializable
ist irreführend, da das eigentliche Klonen und serialisieren Mechanismen sind nicht wirklich abhängig von der Tatsache, dass marker-interfaces werden verwendet, um anzugeben, welche Klassen geklont werden können oder serialisierte.Die einzige nützliche Sache, die Sie tun können, ist
Marker-interfaces ersetzt werden kann, mit Anmerkungen in vielen Orten, aber eine marker-Schnittstellen können weiterhin verwendet werden, für die
Compile-Zeit überprüft. Sie können eine Methode, die nehmen müssen, ein Objekt einer Klasse mit einem bestimmten marker-Schnittstelle(N) z.B.
Können Sie nicht haben, diese compile-time check mit eine Anmerkung allein.
BTW: Sie können zwei Schnittstellen die Verwendung von Generika, aber gute Beispiele sind selten.
EDIT: ich nutze dies für ein Listener-marker-Schnittstelle. Ein listener-Methoden Methoden markiert, mit Anmerkungen, sondern die Methoden können beliebige Namen oder Typ. Es fügt einen compiler mal überprüfen, was sonst eine Reine runtime-linking.
myMethod
ist mehr oder weniger nutzlos, denn was könnte getan werden, mit einemObject
?java.lang.Cloneable
undjava.util.RandomAccess
für "gute" Beispiele (gute wie in ich würde es auf diese Art gemacht, bevor Annotationen eingeführt wurden,).public Object clone()
Methode.Cloneable
erklärte so eine Methode, wie könnte eine Klasse profitieren Sie von der automatischen Klonen, wenn eine flache Kopie angefordert wurde? Ich meine Abstimmung ändern vonCloneable
zujava.rmi.Remote
.Marker-interface in Java-Schnittstellen mit kein Feld oder Methoden oder einfache word-leeres interface in java ist die sogenannte marker-interface. z.B. serializable, Clonnable und Remote-Schnittstelle. Sie werden verwendet, um signal oder Befehl an den compiler-Oder JVM. Es kann auch verwendet werden, zu klassifizieren-code. Sie können auch schreiben Sie Ihre eigenen marker-interface und benutzt Sie, um logisch zu Gliedern code. Sie können auch schreiben Sie alle pre-processing-Betrieb auf diese Klasse.
Marker-interface sagt JVM, dass die Klasse gekennzeichnet durch die marker-Schnittstelle zur Erweiterung der Funktionalität von ein marker-interface . Wie implementieren von Cloneable sagt JVM, die diese Klasse implementiert Cloneable und daher JVM haben, um es zu kopieren bit-Weise.