Wie implementiere ich eine Marker-Schnittstelle in Java?

Dieser Artikel informiert Sie über einen interessanten Aspekt von Schnittstellen, der als Marker-Schnittstelle in Java bezeichnet wird, und führt anschließend die Implementierung durch.

Dieser Artikel informiert Sie über einen interessanten Aspekt von Schnittstellen, der als Marker Interface In bezeichnet wird und folgen Sie ihm mit der Implementierung. Die folgenden Hinweise werden in diesem Artikel behandelt:

Also fangen wir an,



Die Markierungsschnittstelle ist eine Schnittstelle, die leer ist, d. H. Keine Methoden oder Felder enthält. Es wird auch als Tagging-Schnittstelle bezeichnet und wird verwendet, um der JVM anzuzeigen oder zu informieren, dass eine Klasse, die diese Schnittstelle implementiert, ein spezielles Verhalten aufweist. Eine effiziente Methode zur Klassifizierung von Code kann über die Markierungsschnittstelle erreicht werden. Beispiele für eine solche Schnittstelle sind: Serializable, Cloneable und Remote Interface.

Umzug mit diesem Artikel über die Marker-Schnittstelle in Java

Serialisierbare Schnittstelle

Die Serialisierung in Java kann als der Prozess des Konvertierens des Status eines Objekts in einen Bytestream definiert werden. Dies kann mithilfe der serialisierbaren Schnittstelle erreicht werden, die in java.io.package vorhanden ist. Es ist zu beachten, dass alle Subtypen einer serialisierbaren Klasse selbst serialisierbar sind.

explizites Typ Casting in Java

Beispiel:

import java.io. * class Main implementiert Serializable {int j String s // Ein Klassenkonstruktor public Main (int j, String s) {this.j = j this.s = s}} public class Test {public static void main (String [] args) löst IOException, ClassNotFoundException aus {Main obj = new Main (25, 'HelloWorld') // Serialisierung von 'obj' FileOutputStream fos = new FileOutputStream ('pqr.txt') ObjectOutputStream oos = new ObjectOutputStream (fos) oos .writeObject (obj) // De-Serialisierung von 'obj' FileInputStream fis = neuer FileInputStream ('pqr.txt') ObjectInputStream ois = neuer ObjectInputStream (fis) Main b = (Main) ois.readObject () // Downcasting-Objekt System.out.println (b.j + '' + bs) // Streams schließen oos.close () ois.close ()}}

Ausgabe:
25 HelloWorld

Umzug mit diesem Artikel über die Marker-Schnittstelle in Java

Klonbare Schnittstelle:

Diese Schnittstelle befindet sich im Paket java.lang. Das Klonen ist der Mechanismus zum Generieren eines Replikats oder einer exakten Kopie eines Objekts mit einem anderen Namen.
Die klonbare Schnittstelle wird von einer Klasse implementiert, um der object.clone () -Methode anzuzeigen, dass es für die Methode zulässig ist, eine Feld-für-Feld-Kopie von Instanzen dieser Klasse zu erstellen.
Eine CloneNotSupportedException wird für eine Klasse ausgelöst, die die Klonmethode aufruft, ohne eine klonbare Schnittstelle zu implementieren.

Beispiel:

java.lang.Cloneable-Klasse importieren javaClone implementiert Cloneable {int j String s // Definieren eines Klassenkonstruktors public javaClone (int j, String s) {this.j = j this.s = s} // Überschreiben der clone () -Methode @ Override protected Object clone () löst CloneNotSupportedException aus {return super.clone ()}} public class Main {public statisch void main (String [] args) löst CloneNotSupportedException aus {javaClone c = new javaClone (18, 'HelloWorld') // cloning ' c 'und Halten der // neuen Referenz für geklonte Objekte in b // Herunterwerfen von javaClone b = (javaClone) c.clone () System.out.println (bj) System.out.println (bs)}}

Ausgabe:
18
Hallo Welt

Umzug mit diesem Artikel über die Marker-Schnittstelle in Java

Remote-Schnittstelle:

Ein entferntes Objekt kann als ein Objekt definiert werden, dessen Methoden von einer anderen JVM aufgerufen werden können, möglicherweise auf einem anderen Host. Diese Schnittstelle befindet sich im Paket java.rmi. Ein entferntes Objekt muss diese Methode direkt oder indirekt implementieren.

RMI:

Remote Method Convocation ist eine API, mit der ein Objekt Methoden für ein Objekt aufrufen kann, das in einer anderen JVM ausgeführt wird. Es bietet Remote-Kommunikation zwischen den beiden Anwendungen mithilfe der folgenden Objekte: Stub und Skeleton.

Stub:

Ein Stub kann als ein Objekt definiert werden, das auf der Clientseite vorhanden ist und das entfernte Objekt darstellt. Es wird ein Informationsblock erstellt, der besteht aus:
α Kennung des entfernten Objekts
α Name der Methode, die aufgerufen werden soll
α Parameter zur Remote-JVM

Skelett:

Die Hauptaufgabe des Skelettobjekts besteht darin, die Anforderungen vom Stub an das entfernte Objekt zu übergeben. Darüber hinaus werden die folgenden Aufgaben ausgeführt:
α Es ruft die gewünschte Methode für das ursprüngliche entfernte Objekt auf
α Liest den für das entfernte Objekt angegebenen Parameter

Umzug mit diesem Artikel über die Marker-Schnittstelle in Java

Schritte zum Implementieren der Remote-Schnittstelle:

Definieren Sie eine Remote-Schnittstelle:

import java.rmi. * öffentliche Schnittstelle AddAll erweitert Remote {public int add (int r, int s) löst RemoteException aus}

Hier wird die Remote-Schnittstelle erweitert und RemoteException mit allen Methoden der Remote-Schnittstelle deklariert.

Umzug mit diesem Artikel über die Marker-Schnittstelle in Java

Implementieren Sie die Remote-Schnittstelle:

Es gibt zwei Möglichkeiten, die Remote-Schnittstelle zu implementieren:
α Erweitern Sie die UnicastRemoteObject-Klasse
α Verwenden Sie die exportObject () -Methode der UnicastRemoteObject-Klasse

import java.rmi. * import java.rmi.server. * public class AddAllRemote erweitert UnicastRemoteObject implementiert Adder {AddAllRemote () löst RemoteException aus {super ()} public int add (int r, int s) {return r + s}}

Erstellen Sie mit rmic (rmi compiler) die Stub- und Skeleton-Objekte.

Die Stub- und Skeleton-Objekte können mithilfe des rmi-Compilers erstellt werden. Das rmi-Tool ruft den RMI-Compiler auf, um die Objekte zu erstellen.
rmic AddAllRemote

Starten Sie mit dem Tool rmiregistry den Registrierungsdienst.

Der Registrierungsdienst kann mit dem rmregistry-Tool gestartet werden. Eine Standardportnummer wird verwendet, wenn sie nicht vom Benutzer angegeben wird.
rmiregistry 5000

Mit diesem Artikel über die Marker-Schnittstelle in Java

Erstellen und starten Sie die Remote-Anwendung.

import java.rmi. * import java.rmi.registry. * public class Server {public statisch void main (String args []) {try {AddAll stub = new AddAllRemote () Naming.rebind ('rmi: // localhost: 5000 / sak ', stub)} catch (Ausnahme e) {System.out.println (e)}}}

Das entfernte Objekt wird im obigen Beispiel durch den Namen sak gebunden.

Umzug mit diesem Artikel über die Marker-Schnittstelle in Java

Erstellen und starten Sie die Client-Anwendung.

Im angegebenen Beispiel werden der Server und die Clientanwendungen auf demselben Computer ausgeführt. Daher wird localhost verwendet.

import java.rmi. * public class Client {public statisch void main (String args []) {try {AddAll stub = (AddAll) Naming.lookup ('rmi: // localhost: 5000 / sak') System.out.println (stub.add (29,18))} catch (Ausnahme e) {}}}

Um von einem anderen Computer aus auf das Remote-Objekt zugreifen zu können, muss der lokale Hostname in die IP-Adresse oder den Hostnamen geändert werden, auf dem sich das Remote-Objekt befindet.

Eine effiziente Methode zur Klassifizierung von Code kann über die Markierungsschnittstelle erreicht werden.

Damit sind wir am Ende dieses Artikels angelangt. Wenn Sie mehr erfahren möchten, lesen Sie die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka wurde entwickelt, um Sie sowohl für Kern- als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring zu schulen.

Hast du eine Frage an uns? Bitte erwähne es im Kommentarbereich dieses Blogs und wir werden uns so schnell wie möglich bei dir melden.