Lombok的使用
2020-04-12 16:02:16来源:博客园 阅读 ()
Lombok的使用
Lombok简介
在Java项目中,我们要写很多杂七杂八的代码,比如
- pojo的getter、setter、toString方法
- 异常处理
- I/O流的关闭操作
等等,没有技术含量,还占据很多行,Lombok就是为解决此问题而开发的。
比如在一个pojo类中写一大把getter、setter方法,又臭又长,一直滑滚轮。
使用Lombok:在类上直接标注个@Getter、@Setter,自动生成getter、setter方法,且不显示出来、不占据空间。
准备工作
1、IDEA安装插件Lombok 2、项目中添加Lombok的依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> <scope>provided</scope> </dependency>
添加依赖才能使用Lombok的注解,编译时IDEA会自动调用Lombok插件来向生成的.class文件中添加指定的方法。
IDEA安装了Lombok插件,写代码时才会有Lombok生成的方法的提示,编译时才会往.class文件中添加相关方法。
Lombok常用注解
1、@Getter|@Setter 生成getter|setter方法
可以标注在类上、成员变量上,标注在类上时会给所有成员变量生成getter|setter方法,标注在成员变量上时是给该成员变量实现对应的getter|setter方法。
注意:只对实例成员变量有效(只生成实例成员变量的getter|setter方法),对static成员变量无效。
标注在成员变量上时,下面3种写法都可以:
@Getter @Setter private String username; @Getter @Setter private String username; @Getter @Setter private String username;
标注在成员变量上的注解都可以这么写,后续不再说明。
@ToString 重写toString()
标注在类上。
默认包含全部属性,可用of指定要包含哪些属性、exclude排除哪些属性。
@ToString(of = {"id","username"}) //值都是String[]的形式 @ToString(exclude = {"id","username"})
@EqualsAndHashCode 重写hashCode()、equals()
标注在类上。
重写的效果和我们给pojo类重写hashCode()、equals()的效果是一样的,根据内容来判断是否equals,不是根据地址。
@NoArgsConstructor|@AllArgsConstructor 生成无参、全参的构造方法
标注在类上。
生成的全参构造方法,参数表是不包含static成员变量的。
@RequiredArgsConstructor
标注在类上。
生成只包含final修饰或@NonNull标注的成员变量的构造方法。
@Data
标注在类上。
相当于以下注解的集合:@Getter 、@Setter、@ToString、@EqualsAndHashCode 、 @RequiredArgsConstructor
@SneakyThrows 自动捕捉并抛出异常
标注在方法上。
相当于在方法上声明throws Exception。
@Cleanup 自动关闭资源
标注在变量上。
只对实现了java.io.Closeable接口的对象有效,比如IO流、数据库连接。
@Cleanup往往需要和@SneakyThrows搭配使用,因为IO流、连接基本都要抛出异常,“文件未找到异常”、“无法连接异常”等等,单独使用@Cleanup很多时候都通不过编译。
@SneakyThrows public void test() { @Cleanup InputStream inputStream = new FileInputStream("1.txt"); //.... }
@LogXxx
标注在类上,生成此类对应的static类型的Logger对象。
针对不同的日志实现产品,有不同的注解。直接输入@Log选择即可,比如Log4j的:
@Log4j public class User { }
public class User { private static final Logger log = Logger.getLogger(User.class); }
static类型,当前类的Logger对象。
原文链接:https://www.cnblogs.com/chy18883701161/p/12684650.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 聊聊 OAuth 2.0 的 token expire_in 使用 2020-06-08
- 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用 2020-06-06
- 学习笔记之方法引用 2020-06-06
- idea使用小技巧(一) 2020-06-05
- 用斗地主的实例学会使用java Collections工具类 2020-06-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash