Come implementare l'interfaccia Marker in Java?



Questo articolo ti illustrerà un aspetto interessante delle interfacce chiamato Marker Interface in Java e lo seguirà con l'implementazione.

Questo articolo ti illustrerà un aspetto interessante delle interfacce chiamato Marker Interface In e seguirlo con l'implementazione. I seguenti suggerimenti saranno trattati in questo articolo,

Quindi iniziamo allora,





Marker interface è un'interfaccia vuota, cioè non contiene alcun metodo o campo. È anche nota come interfaccia di tagging e viene utilizzata per indicare o informare la JVM che una classe che implementa questa interfaccia avrà un comportamento speciale. Un modo efficiente per classificare il codice può essere ottenuto utilizzando l'interfaccia marker. Esempi di tale interfaccia sono: interfaccia serializzabile, clonabile e remota.

Spostandoci con questo articolo sull'interfaccia Marker in Java



Interfaccia serializzabile

La serializzazione in java può essere definita come il processo di conversione dello stato di un oggetto in un flusso di byte. Ciò può essere ottenuto utilizzando l'interfaccia serializzabile presente in java.io.package. Va notato che tutti i sottotipi di una classe serializzabile sono essi stessi serializzabili.

Esempio:

import java.io. * class Main implementa Serializable {int j String s // A class constructor public Main (int j, String s) {this.j = j this.s = s}} public class Test {public static void main (String [] args) genera IOException, ClassNotFoundException {Main obj = new Main (25, 'HelloWorld') // Serializing 'obj' FileOutputStream fos = new FileOutputStream ('pqr.txt') ObjectOutputStream oos = new ObjectOutputStream (fos) oos .writeObject (obj) // De-serializzare 'obj' FileInputStream fis = new FileInputStream ('pqr.txt') ObjectInputStream ois = new ObjectInputStream (fis) Main b = (Main) ois.readObject () // down-casting oggetto System.out.println (b.j + '' + bs) // chiusura dei flussi oos.close () ois.close ()}}

Produzione:
25 HelloWorld



Spostandoci con questo articolo sull'interfaccia Marker in Java

Interfaccia clonabile:

Questa interfaccia può essere trovata nel pacchetto java.lang. La clonazione è il meccanismo per generare una replica o una copia esatta di un oggetto con un nome diverso.
L'interfaccia clonabile è implementata da una classe per indicare al metodo object.clone () che è legale per il metodo creare una copia campo per campo delle istanze di quella classe.
Viene generata un'eccezione CloneNotSupportedException per una classe che richiama il metodo clone senza implementare un'interfaccia clonabile.

Esempio:

import java.lang.Cloneable classe javaClone implementa Cloneable {int j String s // Definizione di un costruttore di classi public javaClone (int j, String s) {this.j = j this.s = s} // Overriding clone () method @ Sostituisci oggetto protetto clone () genera CloneNotSupportedException {return super.clone ()}} public class Main {public static void main (String [] args) throws CloneNotSupportedException {javaClone c = new javaClone (18, 'HelloWorld') // cloning ' c 'e tenendo premuto // nuovo riferimento a un oggetto clonato in b // down-casting javaClone b = (javaClone) c.clone () System.out.println (bj) System.out.println (bs)}}

Produzione:
18
Ciao mondo

Spostandoci con questo articolo sull'interfaccia Marker in Java

Interfaccia remota:

Un oggetto remoto può essere definito come un oggetto i cui metodi possono essere richiamati da una JVM diversa, potenzialmente su un altro host. Questa interfaccia si trova nel pacchetto java.rmi. Un oggetto remoto deve implementare questo metodo direttamente o indirettamente.

RMI:

Remote Method Convocation è un'API che consente a un oggetto di richiamare metodi su un oggetto in esecuzione in una JVM diversa. Fornisce la comunicazione remota tra le due applicazioni utilizzando i seguenti oggetti: stub e skeleton.

Stub:

Uno stub può essere definito come un oggetto che è presente sul lato client e rappresenta l'oggetto remoto. Crea un blocco di informazioni composto da:
α Identificatore dell'oggetto remoto
α Nome del metodo che deve essere invocato
α Parametri per la JVM remota

Scheletro:

Il compito principale dell'oggetto scheletro è passare le richieste dallo stub all'oggetto remoto. Inoltre, esegue le attività indicate di seguito:
α Richiama il metodo desiderato sull'oggetto remoto originale
α Legge il parametro specificato per l'oggetto remoto

Spostandoci con questo articolo sull'interfaccia Marker in Java

Passaggi per implementare l'interfaccia remota:

Definisci un'interfaccia remota:

import java.rmi. * interfaccia pubblica AddAll estende Remote {public int add (int r, int s) genera RemoteException}

Qui, l'interfaccia remota viene estesa e RemoteException viene dichiarata con tutti i metodi dell'interfaccia remota.

Spostandoci con questo articolo sull'interfaccia Marker in Java

Implementa l'interfaccia remota:

Esistono due modi per fornire l'implementazione all'interfaccia remota:
α Estendi la classe UnicastRemoteObject
α Utilizzare il metodo exportObject () della classe UnicastRemoteObject

differenza tra xml e html
import java.rmi. * import java.rmi.server. * public class AddAllRemote estende UnicastRemoteObject implementa Adder {AddAllRemote () genera RemoteException {super ()} public int add (int r, int s) {return r + s}}

Usando rmic (compilatore rmi), crea gli oggetti stub e skeleton.

Gli oggetti stub e skeleton possono essere creati utilizzando il compilatore rmi. Lo strumento rmi richiama il compilatore RMI per creare gli oggetti.
rmic AddAllRemote

Utilizzando lo strumento rmiregistry, avviare il servizio di registro.

Il servizio di registro può essere avviato utilizzando lo strumento rmregistry. Se non specificato dall'utente, viene utilizzato un numero di porta predefinito.
rmiregistry 5000

Spostandoci con questo articolo sull'interfaccia Marker in Java

Crea e avvia l'applicazione remota.

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 (eccezione e) {System.out.println (e)}}}

L'oggetto remoto è associato al nome sak nell'esempio precedente.

Spostandoci con questo articolo sull'interfaccia Marker in Java

Crea e avvia l'applicazione client.

Nell'esempio fornito, il server e le applicazioni client vengono eseguiti sulla stessa macchina. Pertanto, viene utilizzato localhost.

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 (eccezione e) {}}}

Per accedere all'oggetto remoto da una macchina diversa, il nome host locale deve essere modificato nell'indirizzo IP o nel nome host in cui si trova l'oggetto remoto.

Un modo efficiente per classificare il codice può essere ottenuto utilizzando l'interfaccia marker.

Così siamo giunti alla fine di questo articolo. Se desideri saperne di più, dai un'occhiata al da Edureka, una società di apprendimento online affidabile. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per formarti sia sui concetti di base che avanzati su Java insieme a vari framework Java come Hibernate e Spring.

Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog e ti risponderemo il prima possibile.