Lombok中@Data注解的坑】的更多相关文章

开发遇到@Data注解的大坑 如果使用@Data注解,会默认重写hashcode和equals方法 那会遇到什么问题呢? 比如说: @Data public class DataTest { private int code; private String name; public DataTest(int code, String name){ this.code = code; this.name = name; } public static void main(String args[]…
开发中使用了lombok,在使用maven编译打包时发现识别不了lombok通过注解@Data在实体类中生成的get,set方法.通过在网上的一篇博客找到了解决的办法,将maven-compiler-plugin的版本升级至3.3. <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> </plugin>…
当你在使用 Lombok 的 @Data 注解时,其实会有一些坑需要关注,今天就让我们来见识一下. Lombok 先来简单介绍一下 Lombok ,其官方介绍如下: Project Lombok makes java a spicier language by adding 'handlers' that know how to build and compile simple, boilerplate-free, not-quite-java code. 大致意思是 Lombok 通过增加一些…
1.前言 今天在看项目代码的时候, 遇到了实体类上加@Builder注解, 之前在开发的时候, 一直没有用过这个注解, 便兴致勃勃地去查了一下资料, 它也是Lombok中的注解, 我们都知道Lombok的注解是在java代码进行编译时对代码进行构建. Lombok插件的出现, 使得开发人员无需写多余的重复代码, 对于java对象的创建更是提供了Builder方法, 使得开发人员在设计实体类的时候, 对外保持private setter, 而对属性的赋值采用Builder方式, 不对外公开属性的写…
今天看到有代码中的Dao包中的类文件,写的极其简洁,甚至引起了开发工具InteliJ的报错,然后程序还能稳健地跑起来. import lombok.Data; @Data public class VaildCode { private String code; private long expTime; } 原来是这个类加了@Data注解,所有Java代码中不需要生成getters and setters,而在编译的时候会自动生成getters and setters 点击导入的包,查看到如下…
@Data注解来源与Lombok,可以减少代码中大量的set get方法,大量减少冗余代码,但是今天部署项目时候,发现实体类使用@Data注解,但是项目业务类中使用getA(),setA()方法报错.经过分析排查发现eclipse中还需要配置lombok. 代码中使用ivy依赖引入jar包. ivy.xml中的配置: <dependency org="org.projectlombok" name="lombok" rev="1.16.20"…
今天在看代码的时候, 看到了这个注解, 之前都没有见过, 所以就查了下, 发现还是个不错的注解, 可以让代码更加简洁. 这个注解来自于 lombok,lombok 能够减少大量的模板代码,减少了在使用@Data 注解时, 需要导入lombok.Data,下面列举下 lombok提供的注解: val : 和 scala 中 val 同名, 可以在运行时确定类型; @NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常,  throw new NullPointExcept…
在代码中我们可以只加上标签@Data 而不用get,set方法: val : 和 scala 中 val 同名, 可以在运行时确定类型; @NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常,  throw new NullPointException(参数名) @Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法 @Getter/@Setter : 注解在类上, 为类提供读写属性 @Getter(lazy=true) : @ToSt…
HashSet中使用@Data注解问题 平时习惯使用lombok工具,免去了我们写get.set方法之类的,当然了,我们使用@Data注解后,equals().hashCode().toString() 也省却了.但是当你代码存在继承关系时,就得留心结果是否是你想要的了? 下面我直接列举个例子吧: 父类: @Data @NoArgsConstructor @AllArgsConstructor public class Tag { private Long id; private String…
在代码中我们可以只加上标签@Data 而不用get,set方法: val : 和 scala 中 val 同名, 可以在运行时确定类型; @NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常,  throw new NullPointException(参数名) @Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法 @Getter/@Setter : 注解在类上, 为类提供读写属性 @Getter(lazy=true) : @ToSt…