我有以下两个班级。我可以说第一个是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;
}
}
它还有一个无参数构造函数。
答案 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实例变量都应该是私有的