javabean规范要求类必须public、字段private、提供无参构造、为每个字段配备符合命名规则的getter/setter;setter可校验,getter可计算,不强制字段与方法一一对应。

JavaBean 规范是面向对象封装实践的一套通用约定,它不靠语法强制,而是靠编码共识来统一属性的封装与访问方式。核心就是让类“可读、可写、可复用”,尤其方便框架(如 Spring、MyBatis)自动识别和操作数据。
JavaBean 的四个硬性要求
一个类要被当作标准 JavaBean,必须同时满足以下四点:
- 类必须声明为 public:确保能被其他包访问;
- 所有字段必须用 private 修饰:切断外部直接读写,实现基础隐藏;
- 必须提供公共的无参构造方法:框架通过反射创建实例时依赖它;
-
每个私有字段都要配套 public 的 getter 和 setter 方法:命名严格遵循驼峰规则,如
private String userName→getUserName()/setUserName(String);boolean 类型字段可用isXxx()替代getXxx()(如isActive())。
getter/setter 不只是“搬运工”
它们不是简单地返回或赋值,而是封装逻辑的入口:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- setter 中可加入校验:比如年龄设为负数时抛异常或忽略;
-
getter 可做计算或转换:如
getFullName()拼接姓和名,不对应任何字段; -
避免暴露敏感字段:密码字段可只提供
setPassword(),不提供getPassword(); - 字段与属性名保持一致:框架(如 JSON 序列化)依赖这种映射关系,改名易导致解析失败。
实际写法示例(带校验)
下面是一个符合规范且实用的 JavaBean 片段:
public class User {
private String username;
private int age;
// 必须的无参构造
public User() {}
// 建议的全参构造(非强制,但实用)
public User(String username, int age) {
this.username = username;
setAge(age); // 复用带校验的 setter
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
if (username != null && !username.trim().isEmpty()) {
this.username = username.trim();
}
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 0 && age
<h3>为什么坚持这套规范?</h3>
<p>它解决的不是“能不能用”,而是“能不能稳用、通用、可维护”:</p>
- IDE 和框架能自动识别属性,生成代码、绑定表单、映射数据库字段;
- 团队协作时,看到
setXxx()就知道这是修改入口,无需翻源码猜逻辑; - 后期加日志、审计、权限控制,只需改 getter/setter,不影响调用方;
- POJO(Plain Old Java Object)本质就是遵守 JavaBean 规范的简单类,是分层架构中数据传递的基石。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










