简介
# 📚简介
Bean相关操作,包括Bean信息描述,Bean路径表达式、动态Bean、Bean工具等。
# JavaBean定义
JavaBean规范定义了Java中一种特殊的类,它遵循一定的编写模式,主要用于封装数据。JavaBean类通常包含私有字段(properties)和公共方法(getters 和 setters)来访问这些字段。这种规范的类提供了一种标准方式来表示和操作数据,使得类更容易被其他组件和工具使用。
public class Person {
private String name;
private int age;
public String getName() { return this.name; }
public void setName(String name) { this.name = name; }
public int getAge() { return this.age; }
public void setAge(int age) { this.age = age; }
}
上面的字段是name,那么读写方法分别以get和set开头,后面接大写祖母开头的字段名name,即读写方法名分别为getName和setName。
# 基本规则
JavaBean类必须满足以下基本要求:
- 公共类:JavaBean类必须是公共的,即使用public关键字声明。
- 无参构造函数:JavaBean类必须提供一个无参的公共构造函数,以便在没有任何参数的情况下创建对象实例。
- 私有实例变量:JavaBean类的所有属性都应该是私有的(使用private关键字),这样可以通过方法来控制对这些属性的访问。
- 存取方法:JavaBean类应该为每个属性提供一对公共的getter和setter方法(可以只有getter或只有setter,只有getter的属性称为只读属性(read-only),只有setter的属性称为只写属性(write-only)),以实现对属性的读取和修改。
# 特殊命名规则
- 对于
boolean类型的属性,getter方法应该使用is前缀(在Hutool中get前缀也会被识别)。
private boolean child;
// 读方法:
public boolean isChild() { return this.child; }
// 写方法:
public void setChild(boolean child) { this.child = child; }
- 如果属性名的第二个字母是大写字母,那么在getter和setter方法中保持属性名的大小写不变。
private int aCup;
// 读方法:
public int getACup() { return this.aCup; }
// 写方法:
public void setACup(int aCup) { this.aCup = aCup; }
如果属性名的前两个字母都是大写(例如专有名词或缩略词),则属性名直接跟在get或set后面,大小写也保持不变。(Hutool中建议字段首字母始终小写)
setter方法可以有返回值,也可以返回void。Hutool中建议返回对象本身,便于链式调用。
public Person setName(String name) { this.name = name; return this; }
注意: JDK的
Introspector在解析JavaBean时,不支持setter方法有返回值的情况,因此在使用Introspector.getBeanInfo()时,setter方法应该返回void。
# JavaBean作用
JavaBean主要用于传递数据,它将一组数据封装成一个对象,便于在不同的环境中传输和处理。