Lombok @Getter @Setter 注解: 简化属性操作

更新时间 2023-08-02 16:42:27

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书活动

目前, 星球 内第2个项目《仿小红书(微服务架构)》正在更新中。第1个项目:全栈前后端分离博客项目已经完结,演示地址:http://116.62.199.48/。采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 255 小节,累计 39w+ 字,讲解图:1716 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 1300+ 小伙伴加入,欢迎点击围观

本小节中,我们将学习如何通过 Lombok 的 @Getter@Setter 注解来简化我们的属性操作。

1. 什么是 @Getter@Setter

@Getter@Setter 是 Lombok 提供的两个注解,它们可以帮助我们自动在 Java 类中生成 gettersetter 方法。这样,你就不需要手动地为每个字段编写这些方法了,省时又省力。

2. 如何使用 @Getter@Setter

使用这两个注解真的超级简单。你只需要在你的类或者字段上加上这两个注解,Lombok 就会自动为你生成 gettersetter 方法。示例代码如下:

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Student {
    private String name;
    private int age;
}

是不是看起来很酷?节省了一大段的样板式代码有木有,Lombok 会在编译阶段自动生成 nameage 字段的 gettersetter 方法。

当然,如果你只想为某个特定的字段生成 getter 或者 setter 方法,那么你可以直接将注解加到字段上,就像这样:

import lombok.Getter;
import lombok.Setter;

public class Student {
    @Getter @Setter private String name;
    private int age;
}

在这个例子中,只有 name 字段会获得 gettersetter 方法,而 age 字段则不会。

3. 更多的选项

Lombok 还允许你自定义生成的 gettersetter 方法的访问级别。例如,你想设置 getter 方法为 protected,只需要这样写:

import lombok.Getter;
import lombok.Setter;
import lombok.AccessLevel;

@Getter(AccessLevel.PROTECTED)
@Setter
public class Student {
    private String name;
    private int age;
}

这样,nameage 字段的 getter 方法就会被设置为 protected,而 setter 方法则仍然是 public

还有一点需要注意,Lombok 不会为 final 字段生成 setter 方法。也就是说,如果你的字段是 final 的,即使你添加了 @Setter 注解,Lombok 也不会为它生成setter 方法。

4. 结语

是不是觉得 Lombok 的 @Getter@Setter 注解很方便呢?它们可以帮助我们省去大量的代码,让我们可以更专注于业务逻辑的实现。不过,也别忘了,任何工具都需要正确地使用才能发挥它们的最大效果。希望你在使用这两个注解的时候能够得心应手!