Java 中 POJO和Beans的区别

POJO: Plain Old Java Object

如果满足以下条件,任何 java 类都是 POJO:

  1. 它不扩展任何其他java类
  2. 它没有实现任何接口
  3. 不使用任何外部注解

示例

这是一个 POJO 类。

public class Animal {
    String name;
    int age;
}

下面的类不是 POJO 类

public class Horse extends Animal {
    String name;
    int age;
}

同样,下面这个类也不是

@Entity
public class Animal {
    String name;
    int age;
}

Java Beans

如果将 java 类声明为 Java Bean,则需要具有以下所有内容:

  1. 无参数构造函数,如果没有声明其他构造函数,它会自动存在
  2. 所有属性都必须是私有的
  3. 应该有公共的 getter 和 setter
  4. 必须是可序列化的

示例

下面是一个 Java Bean 的示例

import java.io.Serializable;

public class Horse implements Serializable {
    private String name;
    private int age;
    // 无参数构造函数已经可用
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return this.age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

通过实现 Serializable 接口,我们使这个类可序列化。

此类具有私有属性和公共 getter 和 setter