pojo实体bool字段不要加is前缀

打印 上一主题 下一主题

主题 1005|帖子 1005|积分 3015

pojo实体bool字段不要加is前缀,在lombok这类工具自动的getter,setter方法时,对于布尔类型,它有自己的命名规则,boolean会把getter方法添加统一前缀is,如boolean的getter方法就是isDefault(),而如果你的字段也命名为isDefault,那么在反序化时大概出现歧义(default不是isDefault);而问题更严重的是,因为你加了is前缀,那么在boolean和Boolean的getter名称上也会出现不同,这在使用BeanUtils.copyProperties这类方法时,无法从类似的boolean属性名复制到另一个实体Boolean的类似属性上面;而如果你布尔类型字段不加is前缀,是不会有这个问题的!
试验代码

UserDto
  1. @Data
  2. @AllArgsConstructor
  3. @NoArgsConstructor
  4. @Builder(toBuilder = true)
  5. public class UserDto {
  6.   private String name;
  7.   private Boolean valid;//小写的boolean,在get方法前自己加is
  8.   private Boolean isVisible;
  9. }
复制代码
UserCreateDTO
  1. @Data
  2. @AllArgsConstructor
  3. @NoArgsConstructor
  4. @Builder(toBuilder = true)
  5. public class UserCreateDTO {
  6.   private String name;
  7.   private boolean valid;//小写的boolean,在get方法前自己加is
  8.   private boolean isVisible;
  9. }
复制代码
测试代码
  1. UserDto userDto = new UserDto();
  2. userDto.setName("lind");
  3. userDto.setValid(true);
  4. userDto.setIsVisible(true);
  5. UserCreateDTO userCreateDTO= new UserCreateDTO();
  6. BeanUtils.copyProperties(userDto, userCreateDTO);
复制代码
可以看到,带有is前缀的字段没有成功复制值,而valid字段,是可以复制成功的,所以,我们不要在boolean字段前面添加is前缀


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

罪恶克星

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表