Aquest article us informarà sobre un aspecte interessant de les interfícies anomenat Marker Interface In i seguiu-lo amb la implementació. Les següents indicacions es tractaran en aquest article,
- Interfície serialitzable
- Interfície clonable
- Interfície remota
- Passos per implementar la interfície remota
- Definiu una interfície remota
- Implementar la interfície remota
- Creeu i inicieu l'aplicació remota
- Creeu i inicieu l'aplicació client
Comencem doncs,
La interfície de marcador és una interfície buida, és a dir, que no conté cap mètode ni camp. També es coneix com a interfície d’etiquetatge i s’utilitza per indicar o informar a la JVM que una classe que implementa aquesta interfície tindrà un comportament especial. Es pot aconseguir una manera eficient de classificar el codi mitjançant la interfície de marcador. Alguns exemples d’aquesta interfície són: Interfície serialitzable, clonable i remota.
Avançant amb aquest article sobre Marker Interface a Java
Interfície serialitzable
La serialització en Java es pot definir com el procés de conversió de l'estat d'un objecte en un flux de bytes. Això es pot aconseguir mitjançant la interfície serialitzable que es troba a java.io.package. Cal tenir en compte que tots els subtipus d’una classe serialitzable són ells mateixos serialitzables.
Exemple:
import java.io. * class Main implements Serializable {int j String s // Un constructor de classes public Main (int j, String s) {this.j = j this.s = s}} public class Test {public static void main (String [] args) llança IOException, ClassNotFoundException {Main obj = new Main (25, 'HelloWorld') // Serializing 'obj' FileOutputStream fos = new FileOutputStream ('pqr.txt') ObjectOutputStream oos = new ObjectOutputStream (fos) oos .writeObject (obj) // Des-serialització de 'obj' FileInputStream fis = new FileInputStream ('pqr.txt') ObjectInputStream ois = new ObjectInputStream (fis) Main b = (Principal) ois.readObject () // objecte down-casting System.out.println (b.j + '' + bs) // tancament de corrents oos.close () ois.close ()}}
Sortida:
25 HelloWorld
Avançant amb aquest article sobre Marker Interface a Java
Interfície clonable:
Aquesta interfície es troba al paquet java.lang. La clonació és el mecanisme per generar una rèplica o una còpia exacta d’un objecte amb un nom diferent.
La interfície clonable és implementada per una classe per indicar al mètode object.clone () que és legal que el mètode faci una còpia camp per camp d'instàncies d'aquesta classe.
Es genera una CloneNotSupportedException per a una classe que invoca el mètode clon sense implementar una interfície clonable.
Exemple:
import java.lang.Cloneable class javaClone implementes Cloneable {int j String s // Definició d'un constructor de classes públic javaClone (int j, String s) {this.j = j this.s = s} // Mètode clon () supremaciant Substitueix l'objecte protegit clon () llença CloneNotSupportedException {return super.clone ()}} classe pública Principal {public static void main (String [] args) llança CloneNotSupportedException {javaClone c = new javaClone (18, 'HelloWorld') // clonació ' c 'i mantenint // nova referència d'objectes clonats a b // descàrrega javaClone b = (javaClone) c.clone () System.out.println (bj) System.out.println (bs)}}
Sortida:
18
Hola món
obtenir data des de string java
Avançant amb aquest article sobre Marker Interface a Java
Interfície remota:
Un objecte remot es pot definir com un objecte els mètodes del qual es poden invocar des d'una JVM diferent, potencialment en un altre amfitrió. Aquesta interfície es troba al paquet java.rmi. Un objecte remot ha d'implementar aquest mètode directament o indirectament.
RMI:
La convocatòria de mètodes remots és una API que permet a un objecte invocar mètodes en un objecte que s’executa en una JVM diferent. Proporciona comunicació remota entre les dues aplicacions mitjançant els objectes següents: stub i esquelet.
Stub:
Un taló es pot definir com un objecte present al costat del client i que representa l'objecte remot. Crea un bloc d'informació que consisteix en:
α Identificador de l'objecte remot
α Nom del mètode que s'ha d'invocar
α Paràmetres de la JVM remota
Esquelet:
La tasca principal de l’objecte esquelet és passar les sol·licituds de l’objectiu a l’objecte remot. A més, realitza les tasques següents:
α Invoca el mètode desitjat a l'objecte remot original
α Llegeix el paràmetre especificat per a l'objecte remot
Avançant amb aquest article sobre Marker Interface a Java
Passos per implementar la interfície remota:
Definiu una interfície remota:
import java.rmi. * interfície pública AddAll estén Remote {public int add (int r, int s) llança RemoteException}
Aquí s’amplia la interfície remota i es declara RemoteException amb tots els mètodes de la interfície remota.
Avançant amb aquest article sobre Marker Interface a Java
com mecanografiar a Java
Implementar la interfície remota:
Hi ha dues maneres de proporcionar implementació a la interfície remota:
α Amplieu la classe UnicastRemoteObject
α Utilitzeu el mètode exportObject () de la classe UnicastRemoteObject
import java.rmi. * import java.rmi.server. * public class AddAllRemote extends UnicastRemoteObject implements Adder {AddAllRemote () llança RemoteException {super ()} public int add (int r, int s) {return r + s}}
Utilitzant rmic (compilador de rmi), creeu els objectes esbós i esquelet.
Els objectes esbós i esquelet es poden crear mitjançant el compilador rmi. L'eina rmi invoca el compilador RMI per crear els objectes.
rmic AddAllRemote
Amb l’eina rmiregistry, inicieu el servei de registre.
El servei de registre es pot iniciar mitjançant l'eina rmregistry. Si l’usuari no l’especifica, s’utilitza un número de port per defecte.
rmiregistry 5000
Avançant amb aquest article sobre Marker Interface a Java
Creeu i inicieu l'aplicació 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 (Excepció e) {System.out.println (e)}}}
L'objecte remot està lligat pel nom sak a l'exemple anterior.
Avançant amb aquest article sobre Marker Interface a Java
Creeu i inicieu l'aplicació client.
A l'exemple donat, el servidor i les aplicacions client s'estan executant a la mateixa màquina. Per tant, s'està fent l'ús de 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 (excepció e) {}}}
Per accedir a l'objecte remot des d'una altra màquina, el nom d'amfitrió local s'ha de canviar a l'adreça IP o al nom d'amfitrió on es troba l'objecte remot.
Es pot aconseguir una manera eficient de classificar el codi mitjançant la interfície de marcador.
Així hem arribat al final d’aquest article. Si voleu obtenir més informació, consulteu el per Edureka, una empresa d’aprenentatge en línia de confiança. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per formar-vos tant per a conceptes bàsics com avançats de Java juntament amb diversos marcs Java com Hibernate & Spring.
Tens alguna pregunta? Si us plau, mencioneu-ho a la secció de comentaris d’aquest bloc i us respondrem el més aviat possible.