Introducción
En este laboratorio, aprenderá sobre los Objetos Java Tradicionales, comúnmente conocidos como POJOs, y sus convenciones. También aprenderá sobre las clases Java Bean. Al final de este laboratorio, será capaz de:
En este laboratorio, aprenderá sobre los Objetos Java Tradicionales, comúnmente conocidos como POJOs, y sus convenciones. También aprenderá sobre las clases Java Bean. Al final de este laboratorio, será capaz de:
En este paso, crearemos una clase POJO llamada Sample. Una clase POJO se puede crear de cualquier manera y no necesita seguir ninguna convención.
// Clase POJO de ejemplo
public class Sample{
public String field1;
private int field2;
double field3;
Sample(String s, int i, double d){
this.field1 = s;
this.field2 = i;
this.field3 = d;
}
public String getField1(){
return field1;
}
public double getField3(){
return field3;
}
}
Guarda el archivo y compílalo en la terminal usando los siguientes comandos:
cd ~/project
javac Sample.java
En este paso, ejecutaremos la clase Sample y veremos cómo funciona.
public class Main{
public static void main(String[] args) {
Sample sample = new Sample("campo 1", 100, 123.45);
System.out.println("Campo 1: " + sample.field1);
System.out.println("Campo 2: " + sample.field2);
System.out.println("Campo 3: " + sample.field3);
}
}
Guarda el archivo y ejecútalo en la terminal usando los siguientes comandos:
java Main
En este paso, usaremos la API de Reflectión para ver las propiedades de la clase Sample. La API de Reflectión es una herramienta poderosa que te permite inspeccionar y modificar el comportamiento de una aplicación.
import org.apache.commons.beanutils.BeanUtils;
import java.util.Map;
public class Main {
public static void main(String[] args) throws Exception {
Sample s = new Sample("f1", 0, 0.0);
try {
Map<String, Object> properties = BeanUtils.describe(s);
for (Map.Entry<String, Object> e : properties.entrySet())
System.out.println(e.getKey() + "->" + e.getValue());
} catch (Exception e) {
System.out.print(e);
}
}
}
Guarda el archivo y compílalo en la terminal usando el siguiente comando:
cd ~/project
javac -cp.:commons-beanutils-1.9.4.jar Main.java
La bandera -cp se usa aquí para especificar el classpath. :commons-beanutils-1.9.4.jar es la ruta del paquete commons-beanutils. Para ejecutar el archivo compilado, usa el siguiente comando:
java -cp.:commons-beanutils-1.9.4.jar Main
En este paso, convertiremos la clase POJO Sample en una clase Java Bean. Una clase Java Bean es un POJO que sigue algunas convenciones y reglas.
import java.io.Serializable;
public class Sample implements Serializable{
private String field1;
private int field2;
private double field3;
public Sample(){}
public Sample(String s, int i, double d){
this.field1 = s;
this.field2 = i;
this.field3 = d;
}
public String getField1(){
return field1;
}
public void setField1(String field1){
this.field1 = field1;
}
public int getField2(){
return field2;
}
public void setField2(int field2){
this.field2 = field2;
}
public double getField3(){
return field3;
}
public void setField3(double field3){
this.field3 = field3;
}
}
En este paso, ejecutaremos la clase Sample y veremos cómo funciona.
public class Main{
public static void main(String[] args) {
Sample sample = new Sample();
sample.setField1("campo 1");
sample.setField2(100);
sample.setField3(123.45);
System.out.println("Campo 1: " + sample.getField1());
System.out.println("Campo 2: " + sample.getField2());
System.out.println("Campo 3: " + sample.getField3());
}
}
Guarda el archivo y compílalo en la terminal usando los siguientes comandos:
cd ~/project
javac Main.java
En este paso, usaremos nuevamente la API de Reflectión para ver las propiedades de la clase Sample.
public class Main {
public static void main(String[] args) throws Exception {
Sample s = new Sample("f1", 0, 0.0);
try {
Map<String, Object> properties = BeanUtils.describe(s);
for (Map.Entry<String, Object> e : properties.entrySet())
System.out.println(e.getKey() + "->" + e.getValue());
} catch (Exception e) {
System.out.print(e);
}
}
}
Guarda el archivo y compílalo en la terminal usando los siguientes comandos:
cd ~/project
javac -cp.:commons-beanutils-1.9.4.jar Main.java
La bandera -cp se usa aquí para especificar el classpath. :commons-beanutils-1.9.4.jar es la ruta del paquete commons-beanutils. Para ejecutar el archivo compilado, usa el siguiente comando:
java -cp.:commons-beanutils-1.9.4.jar Main
En este paso, usaremos la serialización para almacenar un objeto de la clase Sample en un archivo. La serialización se utiliza para convertir un objeto en un flujo de bytes, que se puede guardar en el disco o enviar a través de una red.
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class Main {
public static void main(String[] args) throws Exception {
Sample s = new Sample("f1", 0, 0.0);
try {
FileOutputStream fos = new FileOutputStream("sample.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(s);
oos.close();
fos.close();
System.out.println("Object has been serialized");
} catch (Exception e) {
System.out.print(e);
}
}
}
Guarda el archivo y compílalo en la terminal usando los siguientes comandos:
cd ~/project
javac Main.java
Ejecuta el archivo compilado usando el siguiente comando:
java Main
En este paso, usaremos la deserialización para leer un objeto de la clase Sample desde un archivo. La deserialización se utiliza para convertir un flujo de bytes de vuelta en un objeto.
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class Main {
public static void main(String[] args) throws Exception {
try {
FileInputStream fis = new FileInputStream("sample.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
Sample s = (Sample) ois.readObject();
ois.close();
fis.close();
System.out.println("Object has been deserialized");
System.out.println("Campo 1: " + s.getField1());
System.out.println("Campo 2: " + s.getField2());
System.out.println("Campo 3: " + s.getField3());
} catch (Exception e) {
System.out.print(e);
}
}
}
Guarda el archivo y compílalo en la terminal usando los siguientes comandos:
cd ~/project
javac Main.java
Ejecuta el archivo compilado usando el siguiente comando:
java Main
En este laboratorio, aprendiste sobre los POJO y su papel en la programación Java. Aprendiste cómo crear una clase POJO y la diferencia entre una clase POJO y una clase Java Bean. Aprendiste cómo convertir una clase POJO en una clase Java Bean y cómo usar la API de Reflectión para ver las propiedades de una clase Java Bean. Finalmente, aprendiste cómo serializar y deserializar un objeto Java Bean.