首页 > 其他分享 >一些实用Lombok注解

一些实用Lombok注解

时间:2024-08-12 11:52:26浏览次数:7  
标签:调用 Singular Builder 实用 Cleanup 注解 Lombok 方法 public

@Delegate

@Delegate可以让你的类使用其他类的方法,而不需要自己写代码。

比如,你有一个类叫做A,它有一个方法叫做sayHello(),你想让另一个类B也能用这个方法,那就可以在B类中加上一个A类型的字段,并在这个字段上加上@Delegate注解,这样,B类就可以直接调用sayHello()方法,就像它是自己的方法一样。

看个例子:

// 一个类,有一个方法
public class A {
    public void sayHello() {
        System.out.println("Hello");
    }
}

// 一个类,委托了A类的方法
public class B {
    @Delegate // 委托A类的方法
    private A a = new A();

    public static void main(String[] args) {
        B b = new B();
        b.sayHello(); // 调用A类的方法
    }
}

@Cleanup

@Cleanup可以自动管理输入输出流等各种需要释放的资源,确保安全地调用close方法。

它的使用方法是在声明的资源前加上@Cleanup,例如:

@Cleanup InputStream in = new FileInputStream("some/file");

这样,当你的代码执行完毕后,Lombok会自动在一个try-finally块中调用in.close()方法,释放资源。

如果要释放资源的方法名不是close,也可以指定要调用的方法名,例如:

@Cleanup("release") MyResource resource = new MyResource();

@Singular 和 @Builder 组合

@Builder让你的类支持链式构造,而@Singular让集合类型字段可以更方便的维护。

@Singular注解可以用在集合类型的字段上,它会生成两个方法,一个是添加单个元素的方法,一个是添加整个集合的方法。这两个方法可以和 @Builder 生成的其他方法一起链式调用,给你的类的所有字段赋值。

这么讲可能有点懵,直接看示例:

@Data
@Builder
public class User {
    private String name;
    private int age;
    @Singular
    private List<String> hobbies;
}

// 使用 @Builder 和 @Singular 生成的方法
User user = User.builder()
    .name("练习时长两年半")
    .age(28)
    .hobby("篮球") // 添加单个元素
    .hobby("唱歌") // 添加单个元素
    .hobbies(Arrays.asList("跳舞", "其他")) // 添加整个集合
    .build(); // 构造 User 对象

但需要注意的是,如果你的类继承了一个父类,那么 @Builder 只会生成当前类的字段和参数,不包括父类的。

标签:调用,Singular,Builder,实用,Cleanup,注解,Lombok,方法,public
From: https://www.cnblogs.com/jiutang001/p/18354663

相关文章

  • 代码自动注入框架 lombok
    代码自动注入框架lombok框架是通过反射的方式实现注入的。 1、导入依赖的  lombok.jar包:<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>2、导入依赖的具体类:impor......
  • 基于 JavaFx 搭建的实用小工具集合
    大家好,我是Java陈序员。作为一名后端程序员,常常需要在电脑上安装各种工具软件来支持日常开发。那么,是否有一款工具集合,包含各种工具,可以省去一一安装呢?答案是有的!今天,给大家介绍一个基于JavaFx实现的工具集合,包含了各式各样的开发工具,以及一些有趣的小工具。关注微信公众......
  • 实用好软-----简单的小学出题工具 假期必备
         一个简单的口算生成工具,可以保存常用题型为题库,支持导出.这是方便家长给学生出题的工具,虽然略有简陋,但功能却十分有效可靠。口算题自动生成软件。首次运行时需要安装.Net8运行时,下载地址:https://aka.ms/dotnet/8.0/windowsdesktop-runtime-win-x64.exeWi......
  • 实用好软-----开源 很好用的计算机工具箱
    特点:软件版本:2.0软件特色:独立任务管理器,‘可以修复大部分的系统功能。默认以管理员模式运行。支持VMWARE、VBOX等虚拟机运行内置注册表。MBR防护支持系统:XP-11界面:   注意:0.由于本程序由易语言编写,某些杀毒软件(不包括火绒安全)对我的软件产品存在误报,我保证我的软件产......
  • 实用好软-----开源的文件比较工具
         文件比较工具       WinMerge是一款Windows平台下的开源差异比较与合并工具。WinMerge可比较文件和文件夹,以易于理解和处理的可视文本格式显示差异。此工具对于一些开发者比较适合。特征WinMerge对于确定项目版本之间的更改,然后合并版本之......
  • Spring框架中的@Bean注解详解
    Spring框架中的@Bean注解详解在Java的Spring框架中,@Bean是一个非常重要的注解,它允许开发者在注解方法中创建和配置对象,这些对象随后会被Spring容器管理。本文将通过一个简单的实例来详细解释@Bean注解的使用方法和它在Spring框架中的作用。什么是@Bean注解?@Bean注解是一......
  • 深入解析@JsonValue注解在Java序列化中的应用
    深入解析@JsonValue注解在Java序列化中的应用在Java开发中,对象序列化是一个常见的需求,尤其是在进行网络通信或者数据持久化时。Jackson库作为Java领域内一个非常流行的JSON处理库,提供了强大的序列化和反序列化功能。在Jackson2.9版本之后,@JsonValue注解的引入,为开发者提供......
  • Spring Boot配置类的注解
    SpringBoot中,若某类只用@ConfigurationProperties注解,然后该类:没有在扫描路径下或没用@Component等注解就会导致无法被扫描为bean,须在配置类用@EnableConfigurationProperties注解去指定这个类,才能使@ConfigurationProperties生效,并作为一个bean添加进Spring......
  • 节假日配置初始化 redis缓存方案及@PostConstruct注解,Cache方案GuavaUtils.java工具类
    节假日配置初始化redis缓存方案及@PostConstruct注解,Cache方案GuavaUtils.java工具类启动报错:本机,在jenkins上面没有报错?包括嵌套的注入Beanjava静态代码块和spring@value等注解注入顺序https://www.cnblogs.com/oktokeep/p/15530697.html/***节假日配置初始化redis缓存......
  • 提高效率:Linux 正则表达式实用技巧
    目录前言匹配符号用法讲解“.”用法[]用法“*”用法“.*”用法“\?”用法“\+”用法“\\{n\\}”用法\\{m,n\\}用法锚点符号“^”用法“$”用法“^$”用法或|用法前言在Linux系统中,正则表达式(RegularExpressions,简称regex)是一个强大的工具,广泛应......