Hvordan implementere markørgrensesnitt i Java?



Denne artikkelen vil orientere deg om et interessant aspekt av grensesnitt kalt Marker Interface In Java og følge opp med implementering.

Denne artikkelen vil orientere deg om et interessant aspekt av grensesnitt kalt Marker Interface In og følge den opp med implementering. Følgende tips vil bli dekket i denne artikkelen,

Så la oss komme i gang da,





Markørgrensesnitt er et grensesnitt som er tomt, dvs. det inneholder ikke noen metoder eller felt. Det er også kjent som et merkingsgrensesnitt og brukes til å indikere eller informere JVM om at en klasse som implementerer dette grensesnittet vil ha en spesiell oppførsel. En effektiv måte å klassifisere kode på kan oppnås ved hjelp av markørgrensesnittet. Eksempler på et slikt grensesnitt er: Serializable, Cloneable and Remote Interface.

Flytter med denne artikkelen om Marker Interface i Java



Serialiserbart grensesnitt

Serialisering i java kan defineres som prosessen med å konvertere tilstanden til et objekt til en byte-strøm. Dette kan oppnås ved å bruke det serielle grensesnittet som finnes i java.io.package. Det må bemerkes at alle undertyper av en serie som kan serieiseres, i seg selv kan serialiseres.

Eksempel:

import java.io. * klasse Hovedredskaper Serialiserbar {int j String s // En klassekonstruktør offentlig Main (int j, String s) {this.j = j this.s = s}} public class Test {public static void main (String [] args) kaster IOException, ClassNotFoundException {Main obj = new Main (25, 'HelloWorld') // Serializing 'obj' FileOutputStream fos = new FileOutputStream ('pqr.txt') ObjectOutputStream oos = new ObjectOutputStream (fos) oos .writeObject (obj) // Avserialisering av 'obj' FileInputStream fis = ny FileInputStream ('pqr.txt') ObjectInputStream ois = ny ObjectInputStream (fis) Main b = (Main) ois.readObject () // nedstøpende objekt System.out.println (b.j + '' + bs) // lukkestrømmer oos.close () ois.close ()}}

Produksjon:
25 HelloWorld



Flytter med denne artikkelen om Marker Interface i Java

Klonabelt grensesnitt:

Dette grensesnittet finner du i pakken java.lang. Kloning er mekanismen for å generere en kopi eller en eksakt kopi av et objekt med et annet navn.
Det klonable grensesnittet er implementert av en klasse for å indikere til objektet.clone () -metoden at det er lovlig for metoden å lage en felt-for-felt-kopi av forekomster av den klassen.
En CloneNotSupportedException kastes for en klasse som påkaller klonmetoden uten å implementere et klonabelt grensesnitt.

Eksempel:

importere java.lang.Cloneable klasse javaClone implementerer Cloneable {int j String s // Definere en klassekonstruktør offentlig javaClone (int j, String s) {this.j = j this.s = s} // Overstyrende klon () metode @ Overstyr beskyttet Object clone () kaster CloneNotSupportedException {return super.clone ()}} public class Main {public static void main (String [] args) throw CloneNotSupportedException {javaClone c = new javaClone (18, 'HelloWorld') // cloning ' c 'og holder // ny klonet objektreferanse i b // nedstøping javaClone b = (javaClone) c.clone () System.out.println (bj) System.out.println (bs)}}

Produksjon:
18
Hei Verden

Flytter med denne artikkelen om Marker Interface i Java

Eksternt grensesnitt:

Et eksternt objekt kan defineres som et objekt hvis metoder kan påkalles fra en annen JVM, potensielt på en annen vert. Dette grensesnittet finnes i java.rmi-pakken. Et eksternt objekt må implementere denne metoden direkte eller indirekte.

RMI:

Remote Method Convocation er et API som gjør det mulig for et objekt å påkalle metoder på et objekt som kjører i en annen JVM. Det gir ekstern kommunikasjon mellom de to applikasjonene ved hjelp av følgende objekter: stubbe og skjelett.

Stubbe:

En stub kan defineres som et objekt som er til stede på klientsiden og representerer det eksterne objektet. Det skaper en informasjonsblokk som består av:
α Identifikator for det eksterne objektet
α Navn på metoden som skal påberopes
α Parametere til den eksterne JVM

Skjelett:

Hovedoppgaven til skjelettobjektet er å overføre forespørslene fra stubben til det eksterne objektet. I tillegg utfører den oppgavene nedenfor:
α Den påkaller den ønskede metoden på det opprinnelige eksterne objektet
α Les parameteren som er spesifisert for det eksterne objektet

Flytter med denne artikkelen om Marker Interface i Java

Fremgangsmåte for å implementere eksternt grensesnitt:

Definer et eksternt grensesnitt:

importer java.rmi. * offentlig grensesnitt AddAll utvider Remote {public int add (int r, int s) kaster RemoteException}

Her utvides Remote-grensesnittet, og RemoteException er erklært med alle metodene i det eksterne grensesnittet.

Flytter med denne artikkelen om Marker Interface i Java

Implementere det eksterne grensesnittet:

Det er to måter å gi implementering til det eksterne grensesnittet:
α Utvid klassen UnicastRemoteObject
α Bruk eksportObject () -metoden i UnicastRemoteObject-klassen

importer java.rmi. * import java.rmi.server. * offentlig klasse AddAllRemote utvider UnicastRemoteObject implementerer Adder {AddAllRemote () kaster RemoteException {super ()} public int add (int r, int s) {return r + s}}

Bruk rmic (rmi-kompilator) til å lage stubben og skjelettobjektene.

Stubben og skjelettobjektene kan opprettes ved hjelp av rmi-kompilatoren. Rmi-verktøyet påkaller RMI-kompilatoren for å lage objektene.
rmic AddAllRemote

Ved hjelp av rmiregistry-verktøyet starter du registretjenesten.

Registreringstjenesten kan startes ved hjelp av rmregistry-verktøyet. Et standard portnummer brukes hvis det ikke er spesifisert av brukeren.
rmiregistry 5000

Flytter med denne artikkelen om Marker Interface i Java

Opprett og start den eksterne applikasjonen.

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

Det fjerne objektet blir bundet av navnet sak i eksemplet ovenfor.

Flytter med denne artikkelen om Marker Interface i Java

Opprett og start klientapplikasjonen.

I eksemplet som blir gitt kjøres serveren og klientapplikasjonene på samme maskin. Dermed blir bruken av localhost gjort.

konvertere til binær i python
importer 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))} fangst (Unntak e) {}}}

For å få tilgang til det eksterne objektet fra en annen maskin, må det lokale vertsnavnet endres til IP-adressen eller vertsnavnet der det eksterne objektet ligger.

En effektiv måte å klassifisere kode på kan oppnås ved hjelp av markørgrensesnittet.

Dermed har vi kommet til en slutt på denne artikkelen. Hvis du ønsker å lære mer, sjekk ut av Edureka, et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.