POJO与Java Bean

我们知道在Java中POJO是指普通的旧Java对象.Java中的POJO和Bean类具有一些共同的特征,如下所示-

  • 两个类都必须是公共的,即所有人都可以访问。

  • 在两个类中定义的属性或变量必须是私有的,即不能直接访问。

  • 这两个类都必须具有默认构造函数,即没有参数构造函数。

  • 两个类中都必须存在Public Getter和Setter才能访问变量/属性。

这两个类之间的唯一区别是Java使java Bean对象序列化,以便在需要时可以保留Bean类的状态。因此,因此Java Bean类必须实现Serializable或Externalizable接口。

因此,可以说所有JavaBeans都是POJO,但并非所有POJO都是JavaBeans。

Java Bean类的示例。

public class Employee implements java.io.Serializable {
   private int id;
   private String name;
   public Employee(){}
   public void setId(int id){this.id=id;}
   public int getId(){return id;}
   public void setName(String name){this.name=name;}
   public String getName(){return name;}
}

POJO类的示例。

public class Employee {
   String name;
   public String id;
   private double salary;
   public Employee(String name, String id,double salary) {
      this.name = name;
      this.id = id;
      this.salary = salary;
   }
   public String getName() {
      return name;
   }
   public String getId() {
      return id;
   }
   public Double getSalary() {
      return salary;
   }
}