java - JavaBean到底是什么?

  显示原文与译文双语对照的内容

我理解,我认为"bean"是一个具有属性和 getter/setter的Java类。 就像我所理解的,它相当于一个C 结构。 那是真的?

另外,有没有一个真正的笔句法豆和一个普通的类的区别 有特殊定义或者接口?

基本上,为什么会有这样一个术语,它迷惑我。。

编辑: 如果你青睐类和添加相关信息的Serializable 接口,以及它是什么意思,到你的回答,我将会感激不尽。

时间:

JavaBean只是一个标准的

  1. 所有属性私有( 使用 getter/setter )
  2. 公共 no-argument构造函数
  3. 实现 Serializable

就是这样,只是一个惯例。 很多库都依赖于它。。

关于 Serializable,从 API文档:

类通过实现 java.io.serializable 接口以启用其序列化功能. 没有实现这里接口的类将不具有任何状态序列化或者反序列化。 可以序列化类的所有子类型都是可以序列化的。 序列化接口没有方法或者字段,只用于识别可以序列化的语义。

换句话说,可以序列化对象可以写入流,因此文件,对象数据库,任何真正的。

另外,一个JavaBean和另一个类之间没有语法差异--一个类定义了一个JavaBean如果它遵循标准。

它有一个术语,因为标准允许库以编程方式使用你定义的类实例做事情。 例如如果一个库想要流任何你传入的对象,它就知道它可以因为你的对象是可以序列化的( 假设lib要求你的对象是正确的javabean ) 。

javabean的属性

JavaBean是满足某些编程约定的Java对象:

  1. JavaBean类必须实现Serializable或者具体化

  2. JavaBean类必须有一个no-arg构造函数

  3. 所有JavaBean属性必须有公共setter和getter方法

  4. 所有JavaBean实例变量都应该是私有

javabean示例


@Entity
public class Employee implements Serializable{

 @Id
 private int id;
 private String name; 
 private int salary; 

 public Employee() {}

 public Employee(String name, int salary) {
 this.name = name;
 this.salary = salary;
 }
 public int getId() {
 return id;
 }
 public void setId( int id ) {
 this.id = id;
 }
 public String getName() {
 return name;
 }
 public void setName( String name ) {
 this.name = name;
 }
 public int getSalary() {
 return salary;
 }
 public void setSalary( int salary ) {
 this.salary = salary;
 }
}

...