“POJO 和 Java Bean 的区别是什么?”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) |
Jihongchang(讨论 | 贡献) |
||
(未显示同一用户的1个中间版本) | |||
第46行: | 第46行: | ||
这些规则是 Java Beans 规范的核心内容,为了方便 Java Bean 的开发和使用,以及支持跨平台使用。 | 这些规则是 Java Beans 规范的核心内容,为了方便 Java Bean 的开发和使用,以及支持跨平台使用。 | ||
+ | |||
+ | Oracle 官方提供的关于规范的 PDF | ||
+ | |||
+ | https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ |
2023年2月8日 (三) 08:04的最新版本
POJO (Plain Old Java Object) 和 Java Bean 有一些不同之处:
- 定义不同:POJO 是一种简单的 Java 对象,通常不遵循任何特定的框架或规范。而 Java Bean 是一种遵循 JavaBeans 规范的 Java 对象。
- 属性访问不同:POJO 可以有任意类型的属性,并且不需要遵循特定的访问方式。但是,Java Bean 必须遵循 JavaBeans 规范,即必须有默认的构造函数和一对 getter 和 setter 方法来读取和写入该属性的值。
- 序列化不同:POJO 不需要序列化,但是如果它需要进行网络传输或存储,则必须序列化。而 Java Bean 必须实现 Serializable 接口,这是 Java Beans 规范的一个重要组成部分。
总的来说,Java Bean 是一种规范化的Java对象,而 POJO 是一种简单的Java对象。
如果需要在框架中使用 Java 对象,则应该使用Java Bean;如果仅仅是需要一个简单的 Java 对象,则可以使用 POJO。
POJO | Java Bean | |
---|---|---|
定义 | 通常不遵循任何特定的框架或规范 | |
属性访问 | 不需要遵循特定的访问方式
设置或者获取属性值的方法的名称随意命名 |
必须遵循 JavaBeans 规范,
有默认的空参构造函数和 getter setter |
序列化 | 不是必须 implements Serializable,
不 implements Serializable 也可以叫 POJO |
因为 implements Serializable 是 Java Beans 规范的一部分,
所以必须 implements Serializable, 没 implements Serializable 就不算是 Java Bean |
Java Beans 的规范
Java Beans 规范是 Java 平台提供的一种模型,用于定义 Java 对象的标准方式。
Java Beans 规范要求Java Bean必须遵循以下几个规则:
- 默认构造函数:Java Bean 必须有一个默认的无参构造函数。
- 可读写属性:Java Bean 必须有一对 getter 和 setter 方法,用于读取和写入该属性的值。
- 序列化:Java Bean 必须实现 Serializable 接口,以便可以在网络上进行序列化和反序列化。
- 可监听性:Java Bean 必须支持事件监听,即当该 Java Bean 的状态改变时,必须能够通知其他对象。
- 可扩展性:Java Bean 必须是可扩展的,即可以通过继承或实现新接口来扩展它的功能。
这些规则是 Java Beans 规范的核心内容,为了方便 Java Bean 的开发和使用,以及支持跨平台使用。
Oracle 官方提供的关于规范的 PDF
https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/