一尘不染

Java 什么是JavaBean?

java

我认为,“ Bean”是具有属性和getter / setter的Java类。据我了解,它等效于C结构。真的吗?

另外,bean和常规类之间是否存在真正的语法差异?有没有特殊定义或接口?

基本上,为什么有一个术语呢?

还什么的Serializable接口是什么意思?


阅读 472

收藏
2020-02-27

共1个答案

一尘不染

JavaBean只是一个标准

  1. 所有私有属性(使用getters / setters)
  2. 一个公开的无参数构造函数
  3. 实施Serializable。

而已。这只是一个约定。尽管很多图书馆都依赖它。

关于Serializable,来自API文档:

通过实现java.io.Serializable接口的类,可以启用类的可序列化性。未实现此接口的类将不会对其状态进行序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。

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

而且,JavaBean和另一个类之间在语法上没有区别-如果一个类遵循标准,则它就是JavaBean。

之所以有一个术语,是因为该标准允许库以编程方式对你以预定义方式定义的类实例进行操作。例如,如果一个库要流式传输你传递给它的任何对象,它就知道可以,因为你的对象是可序列化的(假设lib要求你的对象是正确的JavaBeans)。

2020-02-27