lombok注解

@Data

   注解在类上,为类的所有字段自动生成getter/setter方法,以及equals()、hashCode()和toString()方法。这减少了编写样板代码的需要。

@NoArgsConstructor

   注解在类上,为类生成一个无参构造函数。这在某些情况下是必需的,比如在使用反射进行对象创建时,或者当类继承自另一个没有无参构造函数的类时(尽管在这种情况下,你可能需要使用@SuperBuilder或手动编写构造函数)。

@AllArgsConstructor

   注解在类上,为类的每个字段生成一个包含所有字段作为参数的构造函数。这在你需要一次性设置所有字段的值时非常有用。

   在Java中,结合Lombok库使用@Data、@NoArgsConstructor和@AllArgsConstructor注解可以进一步简化类的编写,同时提供丰富的功能。这些注解通常用于POJO(Plain Old Java Object)类,即那些仅包含私有字段和公共访问器(getter和setter)的类。

结合使用
当你将这三个注解结合使用时,你的类将拥有以下特性:

  1. 自动生成的getter和setter方法(通过@Data)。
  2. 一个无参构造函数(通过@NoArgsConstructor),这在某些框架(如Hibernate)中用于实例化对象时非常有用。
  3. 一个包含所有字段作为参数的构造函数(通过@AllArgsConstructor),这在你需要一次性设置对象状态时很方便。

示例

import lombok.AllArgsConstructor;  
import lombok.Data;  
import lombok.NoArgsConstructor;  
  
@Data  
@NoArgsConstructor  
@AllArgsConstructor  
public class User {  
    private String name;  
    private int age;  
    // Lombok将自动生成getter、setter、toString、equals、hashCode方法  
    // 以及一个无参构造函数和一个包含所有字段的构造函数  
}

   在这个例子中,User类通过Lombok的注解自动获得了丰富的功能,而无需编写任何额外的样板代码。这使得代码更加简洁、易于阅读和维护。

注意事项

  1. 使用这些注解时,请确保你的项目中已经包含了Lombok库,并且你的IDE支持Lombok(大多数现代IDE都提供了对Lombok的支持)。
  2. 在某些情况下,你可能不需要@Data注解生成的所有方法(特别是setter方法),因为这可能会违反对象的不可变性。在这些情况下,你可以考虑使用@Getter和@Setter(或仅@Getter)注解来更细粒度地控制哪些方法被生成。
  3. 如果你发现你的类需要更多的构造函数变体,你可以考虑使用@Builder注解来生成一个构建器模式的实现,它提供了更多的灵活性和可读性。
@Slf4j

   @Slf4j 是 Lombok 库提供的一个注解,它自动为你的类生成一个日志对象(默认是 SLF4J 的 Logger),并且避免了编写日志对象初始化的样板代码。使用 @Slf4j 注解后,你可以直接在你的类中使用 log 对象来记录日志,而不需要显式地声明和初始化它。

如何使用
   首先,你需要在你的项目中引入 Lombok 依赖。如果你使用的是 Maven,可以在 pom.xml 文件中添加如下依赖:

<dependency>  
    <groupId>org.projectlombok</groupId>  
    <artifactId>lombok</artifactId>  
    <version>你的Lombok版本号</version>  
    <scope>provided</scope>  
</dependency>

请确保替换 你的Lombok版本号 为当前的 Lombok 版本。

然后,在你的类上添加 @Slf4j 注解:

import lombok.extern.slf4j.Slf4j;  
  
@Slf4j  
public class MyService {  
  
    public void doSomething() {  
        log.info("Doing something...");  
        // 其他代码...  
    }  
}

   在这个例子中,log 对象会自动被添加到 MyService 类中,并且它已经被初始化为一个 SLF4J 的 Logger 对象。你可以直接使用 log 对象来记录不同级别的日志,如 info、debug、warn、error 等。

注意事项

  1. 确保你的 IDE 支持 Lombok。大多数现代 IDE(如 IntelliJ IDEA、Eclipse)都提供了对 Lombok 的支持,但你可能需要安装额外的插件或进行一些配置。
  2. @Slf4j 注解只适用于 SLF4J 日志框架。如果你使用的是其他日志框架(如 Log4j、Logback),Lombok 提供了类似的注解(如 @Log4j2、@Logback),以支持这些框架。
  3. 尽管 Lombok 提供了许多便利的注解,但它也引入了额外的依赖和潜在的复杂性。在决定是否使用 Lombok 之前,请仔细考虑你的项目需求和团队偏好。
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值