阿里规约禁止开发人员使用isSuccess作为变量名
参考网址: https://mp.weixin.qq.com/s?__biz=MzAwMjk5Mjk3Mw==&mid=2247485276&idx=1&sn=7a36cf27893b1f6e1969185ba09c3cac&chksm=9ac0b97eadb730682a47f5df1d0c25b3b8497670f957d889a70913c095422b7eefd592f71ac7&scene=21#wechat_redirect
1.示例代码demo
class Model1 {
private Boolean isSuccess;
public void setSuccess(Boolean success) {
isSuccess = success;
}
public Boolean getSuccess() {
return isSuccess;
}
}
class Model2 {
private Boolean success;
public Boolean getSuccess() {
return success;
}
public void setSuccess(Boolean success) {
this.success = success;
}
}
class Model3 {
private boolean isSuccess;
public boolean isSuccess() {
return isSuccess;
}
public void setSuccess(boolean success) {
isSuccess = success;
}
}
class Model4 {
private boolean success;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
}
2.结论
- 基本类型自动生成的getter和setter方法,名称都是
isXXX()
和setXXX()
形式的。 - 包装类型自动生成的getter和setter方法,名称都是
getXXX()
和setXXX()
形式的。
3.理论规范
Java Bean中关于setter/getter的规范
4.最终方案
1.属性尽量使用包装类型
阿里巴巴Java开发手册》、《码出高效》的作者——孤尽 单独1V1(qing) Battle(jiao)了一下。最终达成共识,还是尽量使用包装类型
2.【强制】所有的 POJO 类属性必须使用包装数据类型。
摘抄阿里规约
而且是强制,所以以后定义pojo属性都是用包装数据类型
【强制】RPC 方法的返回值和参数必须使用包装数据类型。
3.数据库和pojo属性如果表示是否情况
- 数据库
【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint
(1 表示是,0 表示否)。
说明:任何字段如果为非负数,必须是 unsigned。
注意:POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在<resultMap>设置从 is_xxx 到
Xxx 的映射关系。数据库表示是与否的值,使用 tinyint 类型,坚持 is_xxx 的命名方式是为了明确其取值含
义与取值范围。
正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。
- pojo
【强制】POJO 类中的任何布尔类型的变量,都不要加 is 前缀,否则部分框架解析会引起序列
化错误。