编程POJO和Bean之间的区别

时间:2014-08-18 10:37:56

标签: java javabeans pojo

我有以下两个班级。我可以说第一个是POJO类,第二个是Bean类吗?

1)POJO类,因为它只有getter和setter方法,并且所有成员都被声明为私有

public class POJO {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public void setId() {
        this.id = id;
    }

    public void setName() {
        this.name = name;
    }
}

2)Bean类 - 所有成员变量都是私有的,具有getter和setter并实现Serializable接口

public class Bean implements java.io.Serializable {
    private String name;
    private Integer age;

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return this.age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

它还有一个无参数构造函数。

2 个答案:

答案 0 :(得分:9)

唯一区别是bean可以序列化。

来自Java文档 - http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html

实现java.io.Serializable接口的类启用了类的可序列化。未实现此接口的类将不会将其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。

答案 1 :(得分:2)

JavaBean类必须实现Serializable或Externalizable,必须具有no-arg构造函数,所有JavaBean属性必须是public setter和getter方法(视情况而定) 所有JavaBean实例变量都应该是私有的