如何一次性生成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
相关产品推荐
相关产品推荐

