JavaBean 到底是什么?| Java-Debug笔记

本文正在参加「Java主题月 – Java Debug笔记活动」,详情查看<活动链接>

提问:JavaBean 到底是什么?

按照我的理解,"Bean"是具有属性和 getter / setterJava 类。它是否和 C 语言结构体相似呢,是这样的吗?

另外,一个"Bean"类与普通的类之间是否存在真正的语法差异?还是有特殊的定义和接口?

为什么会出现这个术语呢?

还有 Serializable 接口是什么意思?

高分回答:

JavaBean 只是一个标准

  1. 所有的属性是私有的(使用 getters / setters 去处理属性)
  2. 一个公有的无参构造方法
  3. 实现了序列化(Serializable

以上。它只是一个规范,但是很多的类库都是依赖于这些预定。

关于 Serializable,来看一下 API 文档的解释:

实现 java.io.Serializable 接口的类能够序列化。
不实现此接口的类不会有任何状态的序列化和反序列化。
可序列化类的所有子类型本身都是可序列化的。
序列化接口没有方法或字段,仅用于标识的可序列化的语义。
复制代码

换句话说,序列化的对象可以被写入流,文件,对象数据库等等。

另外,一个 JavaBean 类和一个普通的类没有语法区别,如果遵循上面的标准的话,一个普通的类也可以被认为是一个 JavaBean 类。

之所以需要 JavaBean,是因为这样预定义了一种类的格式,一些库能依据这个已经约定好的格式,来做一些自动化处理。举个例子,如果一个类库需要通过流来处理你传递的任何对象,这个类库知道它可以正常处理,因为这个对象是可序列化的。(假设这个类库要求你的对象是 JavaBean

出处:

文章翻译自 Stack Overflow :What is a JavaBean exactly?

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享