别再写getter,setter方法了,用Lombok来简化你的代码吧

博客介绍了在实际开发中可使用Lombok插件解决代码臃肿问题。先说明了要在IDEA安装该插件,接着介绍了Lombok常用注解,如Data、Setter、Getter等注解的作用及使用效果,最后总结常用注解,指出Lombok注解不止这些。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在实际开发中,有些代码是重复的、IDE一键生成的,不写不行,写了又觉得代码太臃肿,不美观。如果你也有这种体会,那么,请使用Lombok插件吧,真的非常好用。Lombok的使用也非常简单,都是各种各样的注解。

引入依赖

<dependency>
 <groupId>org.projectlombok</groupId>
 <artifactId>lombok</artifactId>
 <optional>true</optional>
</dependency>
复制代码

IDEA安装Lombok插件

单单引入Lombok的包还是不够的,ide会识别不到,会提示你getter,setter等方法没有定义。所以,需要先安装Lombok插件(eclipse,vs code等可以自行百度安装)

点击 File -> setting -> plugins,搜索Lombok安装即可,安装完后重启IDEA。

Lombok常用注解

1.Data注解

该注解作用在类上,默认为类生成get 、 set、equals、hashCode、toString 等方法。定义一个Happyjava类如下:

@Data
public class Happyjava {
​
 private String username;
​
 private String pwd;
​
}
复制代码

使用了Data注解标识在类上,我们可以通过ide的自动补全功能查看Data注解为我们实现了哪些方法:

可以看到,get 、 set、equals、hashCode、toString 这些pojo必备的方法都已经实现了。

2.Setter注解

有些类不需要getter方法,那么我们可以单独使用setter注解来标识。

通过ide的自动补全功能,可以看到为我们实现了getter方法

3.Getter注解

有些类只提供getter返回,不允许外部设置属性值,这时候可以使用getter注解。

@Getter
public class Happyjava {
​
 private String username;
​
 private String pwd;
​
}
复制代码

4.AllArgsConstructor注解

该注解为我们提供了一个全参的构造器。

通过反编译查看:

为我们创建了全参的构造方法

5.NoArgsConstructor注解

如果我们使用了AllArgsConstructor注解,又想拥有一个无参构造方法,那就使用NoArgsConstructor注解吧。

通过反编译查看

6.EqualsAndHashCode注解

为我们实现了equals、canEqual、hashCode 方法。

7.Cleanup注解

清理注解,该注解放在需要关闭的变量前面,比如InpuStream等。默认调用close() 方法,如果需要调用其它的关闭方法,需要手动声明:@Cleanup(“methodName”) 。还有一点需要注意的是,如果close方法抛出受检异常,在编译阶段会报错:

我们可以手动把这个异常抛出

通过反编译查看:

这个注解我个人是不太喜欢用的,个人更推荐大家使用try-with-resources的方式来关闭资源吧。如下:

8.Builder注解

该注解是本人最喜欢的注解之一,采用Builder的模式构造实例,是我非常喜欢的实例化类的方法。

通过反编译查看:

然后我们就可以愉快的通过Builder来构造实例啦

public static void main(String[] args) {
 Happyjava happyjava = Happyjava.builder()
 .username("happyjava")
 .pwd("123456")
 .build();
}
复制代码

9.Slf4j注解

这个注解是我使用的最多的注解,使用该注解,就不需要再手动的获取Slf4j实例啦,直接log调用即可。

@Slf4j
public class Main {
 public static void main(String[] args) {
 log.info("happyjava 好好学习");
 }
}
复制代码

通过反编译查看:

Slf4j注解注解,基本上是我开发过程中每个类都会使用的(除了pojo类啦)

总结

以上这些是本人在开发中比较常用到的注解,当然,Lombok的注解可不止这些,只是其他的我不常用罢了。比如Synchronized注解也是不错的,但是我就不太喜欢用。

转载于:https://juejin.im/post/5d07a01ff265da1b971a759f

<think>好的,用户想用Lombok来补充gettersetter方法。首先,我需要确认用户是否已经了解Lombok的基本用法。可能用户是刚开始接触这个库,所以需要从基础开始解释。 首先,我应该介绍Lombok的作用,它能通过注解自动生成代码,减少样板代码。然后,具体到生成gettersetter,需要提到@Getter和@Setter这两个注解的使用方式。要说明可以应用在类上或者单个字段上,这样用户知道不同的应用场景。 接下来,用户可能需要知道如何安装和配置Lombok。这里要分步骤说明,包括Maven和Gradle的依赖添加,以及IDE需要安装插件,特别是Eclipse和IntelliJ的不同设置,避免用户遇到问题。 然后,给出一个具体的代码示例,展示使用Lombok前后的对比。这样用户能直观看到效果,比如一个User类,添加注解自动生成方法代码变得简洁。 还要提醒一些注意事项,比如需要IDE支持,否则可能编译不通过。另外,如果有特殊逻辑需要自定义方法Lombok可能不适用,这时候需要手动编写。此外,其他常用注解可以简要提及,让用户有更多了解。 最后,确保步骤清晰,语言简洁,避免使用专业术语过多,让新手也能理解。可能用户在使用过程中会遇到依赖未正确导入或者插件未安装的情况,所以这些点需要重点强调,帮助用户顺利解决问题。</think>以下是使用Lombok自动生成getter/setter方法的详细步骤: 1. **添加依赖** ```xml <!-- Maven项目在pom.xml中添加 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <!-- 使用最新版本 --> <scope>provided</scope> </dependency> ``` 2. **安装IDE插件** - IntelliJ: 安装"Lombok Plugin" - Eclipse: 下载[lombok.jar](https://projectlombok.org/)双击安装 3. **代码应用注解** ```java import lombok.Getter; import lombok.Setter; @Getter // 自动生成所有字段的getter @Setter // 自动生成所有字段的setter public class User { private String name; private int age; private boolean active; // Lombok自动生成: // getName(), setName(String name) // getAge(), setAge(int age) // isActive(), setActive(boolean active) } ``` 4. **可选精细化控制** ```java // 单个字段控制 public class Product { @Getter @Setter private String sku; @Getter(AccessLevel.PROTECTED) // 生成protected级别的getter private double price; @Setter(AccessLevel.NONE) // 不生成setter private String manufacturer; } ``` **验证方法是否生成:** - 编译后查看target/classes目录下的.class文件 - 在IDE中开启"Structure"视图查看可用方法 - 直接调用测试: ```java User user = new User(); user.setName("张三"); // 正常调用说明生成成功 System.out.println(user.getName()); ``` **注意事项:** 1. 需要确保IDE启用了注解处理(Enable annotation processing) 2. 如果要覆盖默认生成的逻辑,可以手动编写对应方法 3. 常用其他注解: - `@Data`:生成getter/setter/toString/equals/hashCode - `@NoArgsConstructor`:无参构造 - `@AllArgsConstructor`:全参构造 - `@Builder`:生成建造者模式 **原理说明:** Lombok在编译时通过注解处理器(Annotation Processor)自动修改抽象语法树(AST),最终生成的.class文件中会包含对应方法。运行时不需要依赖Lombok库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值