JavaBean需满足公共类、无参构造、私有属性、getter/setter及序列化;其命名规范要求普通属性用get/set前缀,布尔类型优先is前缀,内省机制依此解析属性名。
JavaBean 是 Java 中一种特殊的类,主要用于封装数据,它遵循一定的规范,以便在各种框架(如 Spring、Struts)和工具中被广泛使用。其中 setter 和 getter 方法的命名规则是 JavaBean 规范的核心部分之一。
一个类要被称为 JavaBean,必须满足以下条件:
JavaBean 对 getter 和 setter 方法的命名有严格要求,这样工具和框架才能通过内省(Introspection)机制自动识别属性。
1. 普通属性(非布尔类型)示例:
private String name; private int age; p2. 布尔类型属性ublic String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }
示例:
private boolean active;
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
3. 特殊情况:以 is 开头的布尔属性名
isOpen),getter 必须是 isIsOpen(),但这种情况不推荐open 作为属性名,getter 为 isOpen()
firstName,则 getter 为 getFirstName(),setter 为 setFirstName()
getfirstname() 或 SetFirstName()
Java 的内省机制(如 java.beans.Introspector)会根据方法名解析出属性名:
getName() 和 setName(),会推断出存在一个叫 name 的属性例如:getUserName() → 属性名 userName
getAge,不能是 getage
getFinished(),应优先用 isFinished()