简单英语中的JavaBeans是什么?
在我开始之前,我想让每个人都知道,我确实花了很长时间在谷歌上搜索,找到了很多解释和定义。但即便如此,在花了数小时阅读之后,这个主题仍然显得相当模糊。我知道我必须问一些可以改善社区的问题,但是这个问题只是让我看看我是否对JavaBeans有一个清晰的理解 据我所知,JavaBean基本上是一个类,与任何其他java类一样,只是它遵守某些约定,即:简单英语中的JavaBeans是什么?,java,javabeans,definition,Java,Javabeans,Definition,在我开始之前,我想让每个人都知道,我确实花了很长时间在谷歌上搜索,找到了很多解释和定义。但即便如此,在花了数小时阅读之后,这个主题仍然显得相当模糊。我知道我必须问一些可以改善社区的问题,但是这个问题只是让我看看我是否对JavaBeans有一个清晰的理解 据我所知,JavaBean基本上是一个类,与任何其他java类一样,只是它遵守某些约定,即: 该类必须实现可序列化 类属性被假定为私有的,它们的名称以小写字母开头 每个属性都必须有各自的getter和setter方法 每个setter方法都以前
- 该类必须实现可序列化
- 类属性被假定为私有的,它们的名称以小写字母开头
- 每个属性都必须有各自的getter和setter方法
- 每个setter方法都以前缀“get”开头,后跟属性名,例如setName()
- Setter方法是公共的和无效的
- 这同样适用于getter方法(前缀“get”、public、返回类型以及相应的属性类类型等)
- 对于布尔属性而不是“get”,使用前缀“is”
- 严格来说,被认为是“bean”的是类的实例,而不是类本身李>
…谢谢大家的回答,这样我就可以更新这个项目列表了:-)javabean是一个标准。所有JavaBean都具有以下3个特性: 1) 该类实现了可序列化的
2) 所有字段都有公共setter和getter来控制访问。
3) 一个公共的无参数构造函数。是的,差不多就是这样
只需几个额外的位:
- getter不接受任何参数,setter只接受一个与属性类型相同的参数
- 通过分别省略setter或getter,属性只能读或写
boolean
getter使用前缀“is”
严格地说,我认为这些例子是“豆子”,而不是课堂。补充了我们同事的答案:
使用addXXXListener方法添加侦听器
使用RemoveXXXLListener方法删除侦听器
布尔(基元)字段应具有isXXX方法,而不是getXXX方法
因为它是一个标准,所以遵循它很重要,因为Java中的库和技术将在幕后使用它。示例:JSP中的表达式语言、GUI构建器等
规格:
是这样吗?我接近了吗
是的,你相对正确。大多数bean都遵循这样的基本定义规则。不过,还有几件事需要补充。为了区分bean和POJO(普通的旧Java对象),bean有一个默认构造函数,通常实现可序列化接口
这允许您跨许多框架使用基本模型。bean主要用于以简单的布局结构存储和检索数据,因此数据模型可以在整个特定体系结构中共享。示例包括在UI中使用相同的数据触发事件,以处理不同的对话框和/或检索给定ORM(对象关系映射)的结果。您可能需要查看的其他示例包括DTO(数据传输对象)、VO(值对象)和EJB(企业Java Beans)。我认为序列化是不必要的。我认为满足标准是必要的;实际上,并非所有情况下都需要运行。@assylias我不确定。但是,至少对我来说,Serializable
or对bean很重要。数据只能在活动/服务之间传输…若它实现了两者中的一个,那个么该标准似乎根本并没有定义JavaBean,尽管它确实声明它定义了JavaBean。非常困惑。似乎没有任何强制元素。事实上,Java Bean可以是序列化文件,而不是类。相关:关于布尔属性getter,您有一个错误:您编写了“set”而不是“is”。它们不是必需的,但如果必须使用,则应遵循标准。至少我在五年前拿到SCJP的时候学过。看一看: