最全的 lombok 注解详情(随着版本不定时更新)

一、注解介绍

作用于类,覆盖默认的 equals 和 hashCode

二、属性介绍

  • exclude:通过该属性可以排除某些字段
  • of:通过该属性可以限定计算某些字段
    当 of 属性和 exclude 属性同时出现时,of 属性优先。在不久的将来两者将会被加上 @Deprecated(不建议使用,有更好的替代)
  • callSuper:是否需要调用父类的方法,默认为 false
  • doNotUseGetters:是否调用 getter 方法获取属性值,false 表示调用,默认 false
  • cacheStrategy:是否缓存 hashcode,默认值 CacheStrategy.NEVER,不缓存
    设置为 LAZY 时,第一次调用 hashcode 方法会对 hashcode 值进行缓存,下次再调用,返回缓存的 hashcode,无需重新计算
  • onParam:列出的任何注解都放在生成的方法参数上
    JDK 7 之前的写法是 onParam = @__({@NonNull}),而 JDK 8 之后的写法是 onParam_ = {@NonNull}
  • onlyExplicitlyIncluded:仅包含显式标记为 @EqualsAndHashCode.include 的字段和方法,默认为 false
  • Include:配置在中呈现此成员的方式;如果在方法上,则在输出中包含该方法的返回值,of 属性的替代
    Include 只有在 onlyExplicitlyIncluded = true 时才会生效,Include 标记在需要包含的属性或方法上
    当 onlyExplicitlyIncluded = true 时,则必须搭配 Include 使用,否则不包含任何字段

    • replaces
    • rank:rank 表示该字段的优先级,值越大排在越前面,默认为 0
  • Exclude:exclude 属性的替代
  • of、exclude 属性不能与 onlyExplicitlyIncluded、Include、Exclude 同时出现

三、实战演练

@EqualsAndHashCode(exclude = {"age"}, of = {"name", "age"}, callSuper = false,doNotUseGetters = false, cacheStrategy = CacheStrategy.NEVER, onParam_ = {@NonNull}
)
public class ChenDuLing {private String name;private String age;
}
@EqualsAndHashCode(callSuper = false, doNotUseGetters = false, cacheStrategy = CacheStrategy.NEVER,onParam_ = {@NonNull}, onlyExplicitlyIncluded = true // onlyExplicitlyIncluded 默认值为 false
)
public class ChenDuLing {@EqualsAndHashCode.Include(replaces = "duling", rank = 0)private String name;@EqualsAndHashCode.Excludeprivate String age;
}

四、温馨提示

当 onlyExplicitlyIncluded = true 时需要搭配 @EqualsAndHashCode.Include 使用,这个时候就没有必要用 @EqualsAndHashCode.Exclude,因为字段不加 @EqualsAndHashCode.Include 将都不会比较

lombok 基础注解之 @EqualsAndHashCode相关推荐

  1. lombok 基础注解之 @Builder

    最全的 lombok 注解详情(随着版本不定时更新) 一.注解介绍 @Builder 注解为类生成相对略微复杂的构建器 API 它作用于类,将其变成建造者模式 可以以链的形式调用 初始化实例对象生成的 ...

  2. lombok 基础注解之 @AllArgsConstructor

    最全的 lombok 注解详情(随着版本不定时更新) 一.注解介绍 作用于类,生成一个参数为所有实例变量的构造方法 二.属性介绍 staticName:使生成的构造方法是私有的,默认值 "& ...

  3. lombok 基础注解之 @NonNull

    最全的 lombok 注解详情(随着版本不定时更新) 一.注解介绍 作用于成员变量和参数中,标识变量不能为空,否则抛出空指针异常 二.实战演练 @Setter @Getter public class ...

  4. Lombok的注解简单介绍

    Lombok的注解简单介绍 背景   我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器.getter.setter.equals.hashcode.toStri ...

  5. 20190905 Lombok常用注解

    Lombok常用注解 val 用于声明类型,将从初始化表达式推断出类型,仅适用于局部变量和foreach循环,而不适用于字段.声明的局部变量为final变量. Java自带类型推断随着JDK版本提升越 ...

  6. springboot依赖lombok插件、lombok常用注解

    --springboot依赖lombok插件.lombok常用注解 1 lombok插件 1.1 lombok插件简介 官方介绍如下: 意思是:lombok是一个能自动插入到编辑器和构建工具的java ...

  7. Spring基础专题——第十章(基础注解编程——下)

    目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从一个互联网职场小白到一个沪漂湿人,一路让我知道分享是一件多么重要的事情 ...

  8. Spring基础专题——第九章(基础注解编程——上)

    目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从一个互联网职场小白到一个沪漂湿人,一路让我知道分享是一件多么重要的事情 ...

  9. Java基础-注解和反射

    Java基础-注解和反射 前言 对于注解,我主要还是在自定义APT还有运行时反射获取类来让自己能够构建出复用性更高的代码逻辑. 知识点1-注解: 注解的应用场景由元注解@Retention来进行指定, ...

最新文章

  1. python functools import wraps_python装饰器中functools.wraps的作用详解
  2. [tensorflow] - csv文件读取
  3. shell--基本语法
  4. baseapp01: [S_ERROR]: [Account 40 => dbid 196]---------->call server client2base_xz Generate an err
  5. SLAM GMapping(8)重采样
  6. debian uefi legacy 区别_电脑硬盘格式有Legacy与UEFI,选择哪一个好?千万别选错了!...
  7. navicat安装指南
  8. 2016项目经验总结
  9. cf1299C-Water Balance
  10. c语言编程百分比,c – 计算百分比
  11. 如何从福彩官网抓取 双色球历史数据
  12. Java的“跨平台”特性
  13. Halcon根据两条线拟合中线
  14. ajax poker,《使命召唤15》大逃杀模式介绍 人物解锁方法一览
  15. Springboot+MySQL实现多数据源的信息导入
  16. 获取HTML页面的所有图片地址
  17. 无锡的太湖水臭了!!!
  18. 记一次el-select远程搜索默认数据回显问题
  19. 从计算云到云计算,云可造化万象
  20. python计算器小数点功能_Python 简单计算器实现

热门文章

  1. 51单片机入门篇-LED点亮以及流水灯
  2. idea中web模块导入方法
  3. SpringCloud Alibaba 简介
  4. 百度地图多边形覆盖物,可自定义颜色、个数,并获取坐标。
  5. allegro查找元器件_Allegro快速定位元件
  6. spring运行报错--org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 73; cvc-elt.1: 找不到元素 bean的声明
  7. 单片机 C51 编程要点总结
  8. JDK1.7HashMap 为什么会产生死循环
  9. GEE数据集——PML_V2 0.1.7: 蒸散量与初级生产总值(GPP)耦合
  10. 0629正则表达式:基础