721 字
约 2 分钟
1
Lombok @Getter @Setter 注解: 简化属性操作

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

Lombok 提供的 @Getter@Setter 注解是最常用的注解之一,主要用于自动生成类的 gettersetter 方法。这些方法可以大大减少手动编写代码的工作量,让代码更简洁、更易读。

基本用法

  • @Getter:自动为字段生成 getter 方法。
  • @Setter:自动为字段生成 setter 方法。

这两个注解可以单独使用,也可以同时使用。可以直接加在类上,让类中的所有字段都生成 gettersetter 方法;也可以加在具体字段上,仅生成该字段的 gettersetter

示例代码

import lombok.Getter;
import lombok.Setter;

public class User {
    @Getter @Setter
    private String name;

    @Getter
    private int age;

    // 无需手动编写 getter 和 setter 方法
}

上面的代码会自动生成如下方法:

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

// age 字段没有设置 @Setter 注解,因此没有生成 getter 方法

类级别注解

可以在类上直接使用 @Getter@Setter,为类中的所有字段生成 gettersetter 方法:

import lombok.Getter;
import lombok.Setter;

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

此时,User 类中的所有字段都会自动生成 gettersetter 方法。

控制访问级别

Lombok 的 @Getter@Setter 支持控制生成方法的访问级别,例如可以为某些字段生成 protectedprivategetter/setter。可以通过 AccessLevel 参数来设置访问级别:

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

public class User {
    @Getter(AccessLevel.PUBLIC)
    @Setter(AccessLevel.PROTECTED)
    private String name;

    @Getter(AccessLevel.PRIVATE)
    private int age;
}

在这个例子中:

  • name 字段的 getter 方法是 public 的,setter 方法是 protected 的。
  • age 字段的 getter 方法是 private 的,因此只能在类内部访问。

AccessLevel 提供了以下选项:

  • PUBLIC:公共级别(默认);
  • PROTECTED:受保护级别;
  • PACKAGE:包访问级别;
  • PRIVATE:私有级别;
  • MODULE(Java 9+):模块级别;

使用场景

@Getter@Setter 通常用于以下场景:

  • 数据传输对象(DTO):在需要封装数据的类中,自动生成 gettersetter 可以简化代码。
  • 实体类:在数据库实体类中(如使用 JPA 时),使用 gettersetter 可以方便地进行数据操作。
  • 简单模型类:在只存储数据、不包含业务逻辑的模型类中,大量 gettersetter 是常见需求,使用 Lombok 可以提高开发效率。

总结

Lombok 的 @Getter@Setter 注解简化了数据类的开发,自动生成必要的访问方法,避免了手动编写重复代码。它们非常适合用于 DTO、简单实体类和模型类中,使代码更加简洁和易于维护。

Lombok @Getter @Setter 注解: 简化属性操作
http://www.clxhxhhr.top/posts/1030/
作者
clxstart
发布于
2026-09-18
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。