java lombok ppt,Lombok详解

Lombok详解

lombok介绍

lombok可以通过简单的注解的形式来帮助我们简化和消除一些必须有但显得很臃肿的Java代码,比如常见的Getter&Setter、toString()、构造函数等等。lombok不仅方便编写,同时也让我们的代码更简洁。

lombok提供了一个功能完整的jar包,可以很方便的与我们的项目进行集成。

maven依赖

以maven项目为例,pom文件中引入:

org.projectlombok

lombok

1.16.20

provided

lombok插件安装

下载lombok.jar,(https://projectlombok.org/download.html),建议下载与项目中依赖的lombok版本一致或者更高。

将下载好的lombok.jar移至eclipse的根目录,和 eclipse.ini 文件平级的。

在lombok.jar 的目录下,运行:

2497c14d15d333a915525d488eb7da49.png

java -jar lombok.jar

a. 运行后会弹框如下框,直接点确定

06cc2b19299ad3dd1b30ed35d6480ff3.png

b. 点specify location 按钮,选择eclipse的安装目录,选择到eclipse层即可。

按如下图步骤点击install即可

14ccb1fc1ffb7ed1ecfe35f10b8e0500.png

9d2840e0d24fb282cf30258c119c3a75.png

c. 成功后如下图:

23956f57dd10a2c881a20b31882ea412.png

黑框框也多了很多log:

2b730a39004a6d2704ecc8607a1e2af0.png

看看是否真的安装成功,可以在 eclipse.ini 中看看,我的环境是多了一行(-javaagent:D:\Program Files\eclipse\lombok.jar)

重启eclipse,再clean project。

若是idea,则打开IDEA,选择 file -> settings -> plugins;

在搜索框中输入Lombok plugin,点击install;重启IDEA,安装完成。

** @NonNull**

给方法参数增加这个注解会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出NPE(NullPointerException)。

** @Getter/@Setter**

使用在成员变量或者类上,为特定成员变量/类中所有变量生成Getter/Setter方法。

@ToString

用在类上,可以自动覆写toString方法,当然还可以加其他参数,例如@ToString(exclude=”id”)排除id属性,或者@ToString(callSuper=true, includeFieldNames=true)调用父类的toString方法,包含所有属性。

@EqualsAndHashCode

自动生成hashCode() 和 equals()方法。

@Data

注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor

示例:

使用@Data注释改造下DataDemo,效果如下。需要注意的是使用@RequiredArgsConstrutor生成静态方法需指定staticConstructor的值。

@Data(staticConstructor = "lombok")

public class DataDemo{

private final String name;

@Setter(value = AccessLevel.PACKAGE) private int age;

private double score;

private String[] tags;

@ToString(includeFieldNames=true)

@Data(staticConstructor="of")

public static class Exercise {

private final String name;

private final T value;

}

}

@Value

用在类上,是@Data的不可变形式,相当于为属性添加final声明,只提供getter方法,而不提供setter方法,具体示例可以参考@Data部分

@Log

lombok可以快速生成多种常用日志实例,包括Commonslog、log、log4j、slf4j等等,具体的使用可以依照需求灵活选择。

** @Cleanup**

这个注解用在变量前面,可以保证此变量代表的资源会被自动关闭,默认是调用资源的close()方法,如果该资源有其它关闭方法,可使用@Cleanup(“methodName”)来指定要调用的方法.

示例:

@Cleanup不仅减少了代码编写,同时也避免了可能的泄露问题,CleanUpDemo的lombok改造效果如下。

public class CleanUpDemo {

public static void main(String[] args) throws IOException {

@Cleanup InputStream in = new FileInputStream(args[0]);

@Cleanup OutputStream out = new FileOutputStream(args[1]);

byte[] b = new byte[10000];

while (true) {

int r = in.read(b);

if (r == -1) break;

out.write(b, 0, r);

}

}

}

本文由来源 jackaroo2020,由 system_mush 整理编辑,其版权均为 jackaroo2020 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Lombok 是一个开源的Java库,它可以帮助Java开发人员减少Java代码的冗余并增加代码可读性。它通过注解的方式,自动为Java类生成一些常用的方法和代码。 以下是Java Lombok注解的一些常用的示例: @Data:该注解可以自动生成Java类的getter、setter、equals、hashCode、toString等方法。 @NoArgsConstructor:该注解可以自动生成一个无参构造函数。 @AllArgsConstructor:该注解可以自动生成一个包含所有参数的构造函数。 @Builder:该注解可以自动生成一个Builder模式的Java类。 @Slf4j:该注解可以自动生成一个名为log的slf4j日志对象。 @EqualsAndHashCode:该注解可以自动生成equals和hashCode方法。 @Getter / @Setter:该注解可以自动生成getter和setter方法。 @ToString:该注解可以自动生成toString方法。 @NonNull:该注解可以在参数前使用,表示该参数不能为空。 @RequiredArgsConstructor:该注解可以自动生成一个包含必需参数的构造函数。 @Cleanup:该注解可以自动关闭资源,如IO流等。 @Synchronized:该注解可以生成同步方法。 @Value:该注解可以生成一个不可变的Java类。 @Accessors:该注解可以设置getter和setter的链式调用方式。 @UtilityClass:该注解可以生成一个工具类。 总的来说,Java Lombok注解可以让Java开发人员更加专注于业务逻辑的实现,而不需要关心Java类的getter、setter、equals、hashCode、toString等方法的实现细节。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值