eclipse注解包lombok安装、使用,常用注解解释说明

lombok的使用与eclipse配置lombok插件

背景
lombok库提供了一些注解来简化java代码 
官网:http://projectlombok.org/ 
查看lombok所有api:https://projectlombok.org/api/overview-summary.html

安装方式一:

非安装型eclipse安装 lombok.jar方式:

1、直接将下载好的jar包放入eclipse的安装目录根目录:

2、修改eclipse.ini 文件,增加一行  -javaagent:lombok.jar

安装方式二:

1.在pom.xml引包

1<!-- 增加lombok依赖,可以使用注解@Data 编译时自动生成get,set方法,构造函数,toString方法 -->
2<dependency>
3    <groupId>org.projectlombok</groupId>
4    <artifactId>lombok</artifactId>
5    <scope>compile</scope>
6</dependency>

2.在包目录的地址栏输入:cmd

3.在dos命令行输入:java -jar lombok-1.16.20.jar

4.在弹出框选择需要安装的IDE,点击install/update按钮,即可安装完成

5.安装完成之后,确认eclipse安装路径下是否多了一个lombok.jar包

6.配置文件eclipse.ini中是否 添加了如下内容: 
    -javaagent:lombok.jar 

    -Xbootclasspath/a:lombok.jar 

如果都有,就成功

7.安装成功,使用不了的原因:没有重启IDE,没有clean项目,lombok版本太低等等

几个常用的 lombok 注解:

@val : 和 scala 中 val 同名, 可以在运行时确定类型;

@NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常,  throw new NullPointException(参数名)

@Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法

@Getter/@Setter : 注解在类上, 为类提供读写属性

@Getter(lazy=true) :

@ToString : 注解在类上, 为类提供 toString() 方法

@EqualsAndHashCode : 注解在类上, 为类提供 equals() 和 hashCode() 方法

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor : 注解在类上, 为类提供无参,有指定必须参数, 全参构造函数

@Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法

@Value :

@Builder : 注解在类上, 为类提供一个内部的 Builder

@SneakThrows :

@Synchronized : 注解在方法上, 为方法提供同步锁

@Log :

@Log4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象

@Slf4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象

@Cleanup("dispose") org.eclipse.swt.widgets.CoolBar bar = new CoolBar(parent, 0);
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);

实现原理:
Lombok不是通过字节码改写来实现的。 
它主要是用编译器内支持的annotation processing,直接操纵抽象语法树(AST),根据需要添加新节点。

代码中使用(举两个例子,更多的可以看官网api) 
@Slf4j使用

1import lombok.extern.slf4j.Slf4j;
2 
3@Slf4j
4public class LogExample {
5}

生成后的数据

1public class LogExample {
2 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
3}

@Getter使用

private @Getter int foo;

上将编译成

 public int getFoo() {
     return this.foo;
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值