这篇文章给大家介绍Lombok中@Data如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。。先来简单介绍一下 Lombok ,其官方介绍如下:大致意思是 Lombok 通过增加一些”处理程序”,可以让 Java 代码变得简洁、快速。Lombok 提供了一系列的注解帮助我们简化代码,比如:注解名称功能@Setter
自动添加类中所有属性相关的 set 方法@Getter
自动添加类中所有属性相关的 get 方法@Builder
使得该类可以通过 builder (建造者模式)构建对象@RequiredArgsConstructor
生成一个该类的构造方法,禁止无参构造@ToString
重写该类的toString()
方法@EqualsAndHashCode
重写该类的equals()
和hashCode()
方法@Data
等价于上面的@Setter
、@Getter
、@RequiredArgsConstructor
、@ToString
、@EqualsAndHashCode
看起来似乎这些注解都很正常,并且对我们的代码也有一定的优化,那为什么说@Data
注解存在坑呢?由上面的表格我们可以知道,@Data
是包含了@EqualsAndHashCode
的功能,那么它究竟是如何重写equals()
和hashCode()
方法的呢?我们定义一个类TestA
:我们将其编译后的 class 文件进行反编译:针对其equals()
方法,当它进行属性比较时,其实只比较了当前类中的属性。如果你不信的话,我们再来创建一个类TestB
,它是TestA
的子类:我们将其编译后的 class 文件进行反编译:按照代码的理解,如果两个子类对象,其子类中的属性相同、父类中的属性不同时,利用equals()
方法时,依旧会认为这两个对象相同,测试一下:结果为:用了@Data
就不要有 香港云主机继承关系,类似 Kotlin 的做法。自己重写equals()
, Lombok 不会对显式重写的方法进行生成。显式使用@EqualsAndHashCode(callSuper = true)
, Lombok 会以显式指定的为准。关于Lombok中@Data如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
相关推荐: 看得见的百亿脱贫投入,看不见的阿里技术“脱贫代码”
今天阿里巴巴技术脱贫大会举行。 说起这个大会,就要提起1年前投入100亿元人民币成立的阿里巴巴脱贫基金了。从教育到健康,再到女性、生态和电商扶贫,这五个方向分别由五位阿里合伙人直接牵头。 许多人不知道的是,过去一年,数百位阿里工程师和产品经理在乡村呆的时间比在…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。