Введение
В этом практическом занятии вы узнаете о Plain Old Java Objects, обычно называемых POJO, и их соглашениях. Также вы узнаете о классах Java Bean. В конце этого практического занятия вы сможете:
В этом практическом занятии вы узнаете о Plain Old Java Objects, обычно называемых POJO, и их соглашениях. Также вы узнаете о классах Java Bean. В конце этого практического занятия вы сможете:
В этом шаге мы создадим класс POJO с именем Sample. Класс POJO можно создавать любым способом и не должен следовать каким-либо соглашениям.
// Пример класса POJO
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;
}
}
Сохраните файл и скомпилируйте его в терминале с использованием следующих команд:
cd ~/project
javac Sample.java
В этом шаге мы запустим класс Sample и посмотрим, как он работает.
public class Main{
public static void main(String[] args) {
Sample sample = new Sample("field 1", 100, 123.45);
System.out.println("Field 1: " + sample.field1);
System.out.println("Field 2: " + sample.field2);
System.out.println("Field 3: " + sample.field3);
}
}
Сохраните файл и запустите его в терминале с использованием следующих команд:
java Main
В этом шаге мы будем использовать API Reflection для просмотра свойств класса Sample. API Reflection - это мощный инструмент, который позволяет инспектировать и изменять поведение приложения.
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);
}
}
}
Сохраните файл и скомпилируйте его в терминале с использованием следующей команды:
cd ~/project
javac -cp.:commons-beanutils-1.9.4.jar Main.java
Флаг -cp используется здесь для указания classpath. :commons-beanutils-1.9.4.jar - это путь к пакету commons-beanutils. Чтобы запустить скомпилированный файл, используйте следующую команду:
java -cp.:commons-beanutils-1.9.4.jar Main
В этом шаге мы преобразуем класс POJO Sample в класс Java Bean. Класс Java Bean - это POJO, который следуют некоторым соглашениям и правилам.
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;
}
}
В этом шаге мы запустим класс Sample и посмотрим, как он работает.
public class Main{
public static void main(String[] args) {
Sample sample = new Sample();
sample.setField1("field 1");
sample.setField2(100);
sample.setField3(123.45);
System.out.println("Field 1: " + sample.getField1());
System.out.println("Field 2: " + sample.getField2());
System.out.println("Field 3: " + sample.getField3());
}
}
Сохраните файл и скомпилируйте его в терминале с использованием следующих команд:
cd ~/project
javac Main.java
В этом шаге мы вновь будем использовать API Reflection для просмотра свойств класса 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);
}
}
}
Сохраните файл и скомпилируйте его в терминале с использованием следующих команд:
cd ~/project
javac -cp.:commons-beanutils-1.9.4.jar Main.java
Здесь флаг -cp используется для указания classpath. :commons-beanutils-1.9.4.jar - это путь к пакету commons-beanutils. Чтобы запустить скомпилированный файл, используйте следующую команду:
java -cp.:commons-beanutils-1.9.4.jar Main
В этом шаге мы будем использовать сериализацию для сохранения объекта класса Sample в файл. Сериализация используется для преобразования объекта в поток байтов, который можно сохранить на диск или передать по сети.
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);
}
}
}
Сохраните файл и скомпилируйте его в терминале с использованием следующих команд:
cd ~/project
javac Main.java
Запустите скомпилированный файл с использованием следующей команды:
java Main
В этом шаге мы будем использовать десериализацию для чтения объекта класса Sample из файла. Десериализация используется для преобразования потока байтов обратно в объект.
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("Field 1: " + s.getField1());
System.out.println("Field 2: " + s.getField2());
System.out.println("Field 3: " + s.getField3());
} catch (Exception e) {
System.out.print(e);
}
}
}
Сохраните файл и скомпилируйте его в терминале с использованием следующих команд:
cd ~/project
javac Main.java
Запустите скомпилированный файл с использованием следующей команды:
java Main
В этом практическом занятии вы узнали о Plain Old Java Objects (POJO) и их роли в Java-программировании. Вы узнали, как создавать класс POJO и разницу между классом POJO и классом Java Bean. Вы узнали, как преобразовать класс POJO в класс Java Bean и как использовать API Reflection для просмотра свойств класса Java Bean. Наконец, вы узнали, как сериализовать и десериализовать объект Java Bean.