什么是JavaBean?

问题:

我理解,我认为一个“Bean”是一个带有属性和getter / setter的Java类。据我所知,它相当于一个C结构体。真的吗?
此外,bean和普通类之间是否存在真正的syntactic区别?有没有特殊的定义或界面?
基本上为什么有这个术语?
 编辑:如果您可以如此善良,并添加关于Serializable界面的信息,这意味着什么,对您的答案,我将非常感激。

回答:

JavaBean只是一个standard

  1. 所有属性都是私有的(使用getters/setters
  2. 公开no-argument constructor
  3. 实施Serializable

而已。这只是一个惯例。许多图书馆依赖于它….
关于Serializable,从API documentation

类的可序列化由实现java.io.Serializable接口的类启用。不实现此接口的类将不会使任何状态序列化或反序列化。可序列化类的所有子类型都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。

换句话说,可串行化的对象可以写入流,因此可以写成对象数据库,甚至是任何东西。
此外,JavaBean和另一个类之间没有语法上的区别 – 如果遵循标准,则类定义了JavaBean。
有一个术语,因为标准允许库以预定义的方式以编程方式对您定义的类实例进行编程。例如,如果一个库想要传输你传入的任何对象,它知道它可以因为你的对象是可序列化的(假设lib要求你的对象是正确的JavaBean)。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: What is a JavaBean exactly?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

16 − 9 =