java封装属性命名须遵循阿里规范:成员变量用lowercamelcase;pojo中布尔字段禁用is前缀(如用deleted而非isdeleted);包名全小写、类名uppercamelcase;常量全大写下划线。

Java 中封装属性的命名必须严格遵循阿里《Java开发手册》的强制性要求,核心是统一、清晰、可维护,避免框架解析异常和团队协作歧义。
成员变量统一用 lowerCamelCase 风格
所有非静态、非常量的成员变量(即 POJO/DTO/VO 等类中的私有属性),必须使用小驼峰命名,首字母小写,后续单词首字母大写,不加下划线、美元符,也不以它们结尾。
- 正例:userName、orderAmount、isExpired(注意:此处 isExpired 是布尔值,但仅当它不是 POJO 的字段时才可接受;见下一条)
- 反例:user_name、UserName、$status、status_、getCount(方法名风格误用于字段)
POJO 中布尔类型字段禁用 is 前缀
这是阿里规范中极易踩坑的关键点:在 DO/DTO/VO/BO 等数据对象中,布尔类型的成员变量**不能以 is 开头**,否则 FastJSON、MyBatis、Dubbo 等框架在反射获取 getter/setter 时会误判属性名为去掉 is 后的形式(如 isDeleted → deleted),导致序列化失败或字段为空。
- 正例:deleted、enabled、locked(对应 getter 为 getDeleted()、getEnabled())
- 反例:isDeleted(生成 getter 是 isDeleted(),但框架按 deleted 解析)、isLocked
- 例外:局部变量、方法参数、非 POJO 类中的布尔变量不受此限,可用 isStarted、isValid 等
包名与类名需协同体现语义层级
属性虽在类内定义,但其命名合理性依赖于所在类的定位。阿里强调:类名用 UpperCamelCase,包名全小写且语义单一;这间接约束属性命名需与业务模型对齐。
- 例如:类 UserVO 在包 com.example.order.vo 下,其属性应为 userId、orderCount、createTime,而非 uid(缩写模糊)、cnt(含义不清)
- 杜绝拼音或中英混用:yongHuName、getPingfen 均违规
常量与非常量必须严格区分写法
若属性被声明为 public static final(即类级常量),则必须全部大写,单词间用下划线连接;普通成员变量绝不可套用该格式。
- 正例(常量):DEFAULT_TIMEOUT_MS、MAX_RETRY_COUNT
- 反例(误用常量风格命名成员变量):USER_NAME(这是字段,不是常量)、ORDER_STATUS
- 补充:枚举成员也须全大写下划线,如 PENDING_PAYMENT、SHIPPED
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











