You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何一次性生成Java类的构造方法、getters、setters、equals&hashcode及toString方法

解决方案

1. IDE自定义生成模板(无需引入第三方依赖)

以IntelliJ IDEA为例,操作步骤如下:

  • 写完类属性后,按下快捷键 Alt+Insert(Windows/Linux)/ Cmd + N(macOS)唤出生成菜单
  • 选择「Generate JavaBean」选项,在弹窗中一次性勾选:无参构造、全参构造、Getter、Setter、equals()、hashCode()、toString()
  • 确认后即可一次性生成所有你需要的代码,你还可以将当前勾选配置保存为默认模板,后续创建数据类时只需一键生成,无需重复勾选

如果是Eclipse也有类似功能,右键选择「Source」→ 对应的生成选项,同样可以批量勾选一次性生成。

2. 使用Lombok库(推荐,大幅简化代码)

Lombok是Java生态常用的模板代码消除工具,通过注解即可在编译阶段自动生成你需要的所有方法,不需要在源码里保留冗余的模板代码。
首先在项目中引入Lombok依赖,IDE安装Lombok插件开启注解支持后,代码只需写成:

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Person {
    private String name;
    private int age;
}

其中:

  • @Data 注解会自动为所有属性生成Getter、Setter、equals()、hashCode()、toString()方法
  • @NoArgsConstructor 生成无参构造方法
  • @AllArgsConstructor 生成包含所有属性的全参构造方法

后续修改属性时也不需要手动调整对应方法,Lombok会自动同步更新。

3. 使用Java 16+ Record类(适合不可变数据类)

如果你使用JDK16及以上版本,对于不需要修改属性的纯数据传输类,可以直接用官方提供的Record语法,一行代码就能完成所有功能:

public record Person(String name, int age) {}

这个Record类默认会自动生成全参构造、属性访问方法、equals()、hashCode()、toString()方法,无需任何额外配置,缺点是属性默认是final的,不支持修改,适合只读数据场景。

内容的提问来源于stack exchange,提问作者Ramy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:54:04