什么是简单英语的JavaBeans?

时间:2012-08-06 13:43:06

标签: java javabeans definition

在我开始之前,我希望每个人都知道我确实花了很多时间在Google上搜索并发现很多的解释和定义。但即使这样,花了几个小时阅读这个主题仍然看起来相当含糊。我知道我必须提出可以改善社区的问题,但这只是让我看看我是否清楚地了解JavaBeans。

从我可以看出,JavaBean基本上就像任何其他java类一样,除了它遵守某些约定,即:

  • 该类必须实现Serializeable
  • 类属性假定为私有,其名称以小写字母
  • 开头
  • 每个属性都必须具有相应的getter和setter方法。
  • 每个setter方法都以前缀'get'开头,后跟属性名称,例如的setName()
  • Setter方法是公开的和无效的
  • 同样适用于getter方法(前缀'get',public,返回类型各自的属性类类型等)。
  • 对于布尔属性而不是'get',使用前缀'is'
  • 严格来说,它是被认为是'bean'而不是类本身的类的实例。

经过很长一段时间的阅读,你就拥有它,这就是我能弄清楚的......是吗?我接近了吗?我完全错了吗?

...感谢大家的答案,以便我可以更新这个项目符号列表: - )

4 个答案:

答案 0 :(得分:10)

javabean是标准。所有Javabeans都具有以下三个特质:

1)该班级实施Serializable
2)所有领域都有公共制定者和吸气者来控制访问 3)公共无参数构造函数。

答案 1 :(得分:3)

是的,这就是它。

只需几个额外的位:

  • getters不带参数,setter采用与属性相同类型的单个参数
  • 通过分别省略setter或getter,可以读取或写入属性
  • boolean获取者使用前缀'is'

我认为严格来说这是“bean”的实例,而不是类。

答案 2 :(得分:2)

  是吗?我接近了吗?

是的,你是比较正确的。大多数bean遵循这样的基本规则来定义。但是,还有一些事情需要补充。为了区分bean和POJO(Plain Old Java Object),bean有一个默认的构造函数,通常实现可序列化的接口。

这允许您在许多框架中使用基本模型。 Bean主要用于以简单的布局结构存储和检索数据,因此可以在特定体系结构中共享数据模型。示例包括使用相同的数据在UI中触发事件以处理不同的对话框和/或检索给定ORM(对象关系映射)的结果。您可能想要查看的其他示例是DTO(数据传输对象),VO(值对象)和EJB(Enterprise Java Bean)。

答案 3 :(得分:0)

补充我们研究员的答案:

  1. 使用addXXXListener方法添加侦听器。
  2. 使用removeXXXListener方法删除侦听器。
  3. boolean(primitive)字段应该有一个isXXX方法而不是getXXX方法。
  4. 因为它是一个标准,所以遵循它是很重要的,因为Java中的库和技术可能会使用它。示例:JSP,GUI构建器等中的表达式语言

    规格:http://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/