Comment implémenter l'interface de marqueur en Java?

Cet article vous expliquera un aspect intéressant des interfaces appelé interface marqueur en Java et le suivra avec l'implémentation.

Cet article vous expliquera un aspect intéressant des interfaces appelé Marker Interface In et le suivre avec la mise en œuvre. Les pointeurs suivants seront traités dans cet article,

Alors commençons alors,





L'interface marqueur est une interface vide, c'est-à-dire qu'elle ne contient aucune méthode ni aucun champ. Elle est également connue sous le nom d'interface de balisage et est utilisée pour indiquer ou informer la JVM qu'une classe implémentant cette interface aura un comportement particulier. Un moyen efficace de classer le code peut être obtenu à l'aide de l'interface de marqueur. Des exemples d'une telle interface sont: Interface sérialisable, clonable et distante.

Déplacement avec cet article sur l'interface des marqueurs en Java



Interface sérialisable

La sérialisation en java peut être définie comme le processus de conversion de l'état d'un objet en un flux d'octets. Cela peut être réalisé en utilisant l'interface sérialisable qui est présente dans java.io.package. Il faut noter que tous les sous-types d'une classe sérialisable sont eux-mêmes sérialisables.

Exemple:

import java.io. * class Main implements Serializable {int j String s // Un constructeur de classe public Main (int j, String s) {this.j = j this.s = s}} public class Test {public static void main (String [] args) lève IOException, ClassNotFoundException {Main obj = new Main (25, 'HelloWorld') // Sérialisation de 'obj' FileOutputStream fos = new FileOutputStream ('pqr.txt') ObjectOutputStream oos = new ObjectOutputStream (fos) oos .writeObject (obj) // Désérialisation de 'obj' FileInputStream fis = new FileInputStream ('pqr.txt') ObjectInputStream ois = new ObjectInputStream (fis) Main b = (Main) ois.readObject () // objet de conversion descendante System.out.println (b.j + '' + bs) // fermeture des flux oos.close () ois.close ()}}

Production:
25 HelloWorld



Déplacement avec cet article sur l'interface des marqueurs en Java

Interface clonable:

Cette interface se trouve dans le package java.lang. Le clonage est le mécanisme de génération d'une réplique ou d'une copie exacte d'un objet avec un nom différent.
L'interface clonable est implémentée par une classe pour indiquer à la méthode object.clone () qu'il est légal pour la méthode de faire une copie champ par champ des instances de cette classe.
Une CloneNotSupportedException est levée pour une classe qui appelle la méthode clone sans implémenter une interface clonable.

transformer double en int java

Exemple:

import java.lang.Cloneable class javaClone implémente Cloneable {int j String s // Définition d'un constructeur de classe public javaClone (int j, String s) {this.j = j this.s = s} // Remplacement de la méthode clone () @ Override protected Object clone () lance CloneNotSupportedException {return super.clone ()}} classe publique Main {public static void main (String [] args) lance CloneNotSupportedException {javaClone c = new javaClone (18, 'HelloWorld') // clonage ' c 'et tenant // nouvelle référence d'objet cloné dans b // down-casting javaClone b = (javaClone) c.clone () System.out.println (bj) System.out.println (bs)}}

Production:
18
Bonjour le monde

Déplacement avec cet article sur l'interface des marqueurs en Java

Interface à distance:

Un objet distant peut être défini comme un objet dont les méthodes peuvent être appelées à partir d'une machine JVM différente, éventuellement sur un autre hôte. Cette interface se trouve dans le package java.rmi. Un objet distant doit implémenter cette méthode directement ou indirectement.

RMI:

La convocation de méthode distante est une API qui permet à un objet d'appeler des méthodes sur un objet s'exécutant dans une autre machine virtuelle Java. Il fournit une communication à distance entre les deux applications à l'aide des objets suivants: stub et squelette.

Bout:

Un stub peut être défini comme un objet présent côté client et représentant l'objet distant. Il crée un bloc d'informations qui se compose de:
α Identifiant de l'objet distant
α Nom de la méthode à invoquer
α Paramètres de la JVM distante

Squelette:

Le travail principal de l'objet squelette est de transmettre les requêtes du stub à l'objet distant. De plus, il effectue les tâches ci-dessous:
α Il invoque la méthode souhaitée sur l'objet distant d'origine
α Lit le paramètre spécifié pour l'objet distant

Déplacement avec cet article sur l'interface des marqueurs en Java

Étapes pour implémenter l'interface à distance:

Définissez une interface distante:

import java.rmi. * interface publique AddAll étend Remote {public int add (int r, int s) throws RemoteException}

Ici, l'interface distante est étendue et RemoteException est déclarée avec toutes les méthodes de l'interface distante.

Déplacement avec cet article sur l'interface des marqueurs en Java

Implémentez l'interface distante:

Il existe deux façons de fournir une implémentation à l'interface distante:
α Étendre la classe UnicastRemoteObject
α Utilisez la méthode exportObject () de la classe UnicastRemoteObject

import java.rmi. * import java.rmi.server. * classe publique AddAllRemote étend UnicastRemoteObject implémente Adder {AddAllRemote () lance RemoteException {super ()} public int add (int r, int s) {return r + s}}

À l'aide de rmic (compilateur rmi), créez les objets stub et squelette.

Les objets stub et squelette peuvent être créés à l'aide du compilateur rmi. L'outil rmi appelle le compilateur RMI pour créer les objets.
rmic AddAllRemote

À l'aide de l'outil rmiregistry, démarrez le service de registre.

Le service de registre peut être démarré à l'aide de l'outil rmregistry. Un numéro de port par défaut est utilisé s'il n'est pas spécifié par l'utilisateur.
rmiregistry 5000

Déplacement avec cet article sur l'interface des marqueurs en Java

Créez et démarrez l'application distante.

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

L'objet distant est lié par le nom sak dans l'exemple ci-dessus.

Déplacement avec cet article sur l'interface des marqueurs en Java

Créez et démarrez l'application cliente.

Dans l'exemple donné, le serveur et les applications client sont exécutés sur la même machine. Ainsi, l'utilisation de localhost est en cours.

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

Pour accéder à l'objet distant à partir d'une autre machine, le nom d'hôte local doit être remplacé par l'adresse IP ou le nom d'hôte où se trouve l'objet distant.

Un moyen efficace de classer le code peut être obtenu à l'aide de l'interface de marqueur.

Nous sommes donc arrivés à la fin de cet article. Si vous souhaitez en savoir plus, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance. Le cours de formation et de certification Java J2EE et SOA d'Edureka est conçu pour vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate et Spring.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog et nous vous répondrons dans les plus brefs délais.