前言:
今天使用IDEA导入开源项目,发现源码报错,追查原因发现是我IDEA没有安装Lombok插件,因为之前从未了解过该插件,就学习了下,该篇文章来总结学习过程。
ide安装Lombok:
1、常用的ide中eclipse和Intellij IDEA都是有Lombok插件的,其中Intellij IDEA安装很简单,选择菜单file>settings>Plugins 查询Lombok就能找到对应插件。但是我在eclipse中通过Eclipse Marketplace搜索 Lombok时找不到对应插件。在网上找到eclipse安装Lombok插件方法,大家可以参靠下:https://blog.csdn.net/zflovecf/article/details/80178679
Lombok注解介绍:
1、可以作用于类也可以用于成员变量
@Getter/@Setter: 可以作用于类上,也能用于成员变量上。当作用于类上表明生成该类所有成员变量的get()/set()方法。用于成员变量上生成该变量的get()/set()方法。
2、作用于类上
@ToString :覆盖默认的toString()方法,存在两个属性of和exclude,of限定显示字段设置,exclude限定排除字段设置。 事例:@ToString(of={"name","age"},exclude={"age"})
@EqualsAndHashCode:作用于类,覆盖默认的equals和hashCode
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor:作用于类上,用于生成构造函数。有staticName、access等属性。 staticName属性一旦设定,将采用静态方法的方式生成实例,access属性可以限定访问权限。
@NoArgsConstructor:生成无参构造器;
@RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器;
@AllArgsConstructor:生成全参构造器;
@Builder:作用于类上,将类转变为建造者模式。
指定建造者模式类:
创建实例:
@Log:作用于类上,生成日志变量。添加该注解的类可以直接使用log.info()、log.error()等方法。
@Data :作用于类上,是以下注解的集合:@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor
3、作用于成员变量和参数中
@NonNull:主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。
4、作用于方法层级上
@SneakyThrows:可以对受检异常进行捕捉并抛出。
@Synchronized:作用于方法级别,可以替换synchronize关键字或lock锁
5、其他重要注解
@Cleanup:自动关闭资源,针对实现了java.io.Closeable接口的对象有效,如:典型的IO流对象
编译后结果如下: