在我开始之前,我希望每个人都知道我确实花了很多时间在Google上搜索并发现了解释和定义 . 但即使这样,花了几个小时阅读这个主题仍然看起来相当含糊 . 我知道我必须提出可以改善社区的问题,但这只是让我看看我是否清楚地了解JavaBeans .
从我可以看出,JavaBean基本上是一个类,就像任何其他java类一样,除了它遵守某些约定,即:
-
该类必须实现Serializeable
-
类属性被假定为私有,它们的名称以小写字母开头
-
每个属性必须具有相应的getter和setter方法 .
-
每个setter方法都以前缀'get'开头,后跟属性名称,例如的setName()
-
Setter方法是公开的,无效的
-
同样适用于getter方法(前缀'get',public,返回类型各自的属性类类型等)
-
对于布尔属性而不是'get',使用前缀'is'
-
严格来说,它是类的实例,被认为是'bean'而不是类本身 .
经过很长一段时间的阅读,你就拥有了它,这就是我能想到的......是吗?我接近了吗?我完全错了吗?
...感谢大家的答案,以便我可以更新这个项目符号列表:-)
4 回答
javabean是 standard . 所有Javabeans都具有以下3个品质:
1)该类实现
Serializable
2)所有字段都有公共设置器和getter来控制访问 .
3)公共无参数构造函数 .
是的,这就是它 .
只需几个额外的位:
Getters不带参数,setter采用与属性相同类型的单个参数
属性可以分别通过省略setter或getter来读取或写入
boolean
getters使用前缀'is'而且我认为严格来说这是“ beans 子”的实例,而不是 class .
是的,你是比较正确的 . 大多数bean遵循这样的基本规则来定义 . 但是,还有一些事情需要补充 . 为了区分bean和POJO(Plain Old Java Object),bean有一个默认的构造函数,通常实现可序列化的接口 .
这允许您在许多框架中使用基本模型 . Bean主要用于以简单的布局结构存储和检索数据,因此可以在特定体系结构中共享数据模型 . 示例包括使用相同的数据在UI中触发事件以处理不同的对话框和/或检索给定ORM(对象关系映射)的结果 . 您可能想要查看的其他示例是DTO(数据传输对象),VO(值对象)和EJB(Enterprise Java Bean) .
补充我们研究员的答案:
使用addXXXListener方法添加侦听器 .
使用removeXXXListener方法删除侦听器 .
布尔(基元)字段应该具有isXXX方法而不是getXXX方法 .
因为它是一个标准,所以遵循它是很重要的,因为Java中的库和技术可能会使用它 . 示例:JSP,GUI构建器等中的表达式语言
规格:http://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/