一、前言
Generate虽然很早就知道,也偶尔用一下它生成一些方法。但细细究来,感觉知道的只是它的冰山一角,今天来做下系统性总结,巧用generate可以帮助我们提升效率,虽然现在有各种AI辅助工具,但一些场景下也有其存在的意义。简单来说,我们使用它来帮我们生成如下代码:
1、类的构造方法;
2、生成单元测试类,测试用例;
3、生成继承类或实现类的方法;
4、生成委托方法;
Generate(生成)功能是现代化 IDE(如 IntelliJ IDEA、Android Studio、PyCharm 等 JetBrains 系列产品)中提升开发效率的核心利器。
二、何为 Generate?
简单来说,Generate 是一个代码生成菜单,它允许你通过快捷键或菜单快速生成项目中常见的、重复性的代码结构。你不需要手动敲击每一个字符,IDE 会根据当前上下文(比如你光标所在的位置、类的字段等)智能地为你生成模板代码。
它的快捷键通常是 Alt + Insert(Windows/Linux),部分电脑是Fn+Alt + Insert或 Command + N(Mac)。
执行后弹出下面的界面:

三、Generate 的主要作用
-
减少重复劳动:自动化生成 Getter/Setter、构造函数、
toString()、equals()和hashCode()等样板代码。 -
保证代码正确性:自动生成的代码(尤其是
equals和hashCode)几乎不会出错,避免了手动编写可能带来的隐患。 -
遵循最佳实践:生成的代码通常符合语言规范和社区标准。
-
加速开发流程:只需几次按键就能完成原本需要几分钟的输入工作,极大提升编码速度。
-
统一代码风格:确保团队中所有成员生成的代码格式一致。
四、Generate 的常见用法与巧妙使用技巧
下面通过一些具体场景来看看如何“巧妙”地使用它。
1. 快速生成类的“基础设施”(最常用)
当你定义了一个包含几个字段的类后,接下来的工作就是为它们生成方法。
-
场景:你创建了一个
User类,有id,name,email字段。 -
巧妙使用:
-
在类体内,按下
Alt + Insert。 -
选择 Constructor(构造函数):可以快速选择部分或全部字段生成构造方法。例如,只选择
name和email生成一个用于创建的构造函数。 -
选择 Getter and Setter:可以批量选择所有字段或指定字段,一键生成所有 Getter 和 Setter 方法,当然这个现在一般引入lombok进行管理,不再添加到代码中。
-
选择 toString():在调试和日志打印时非常有用。IDE 会提供多种模板(如 String concat、StringBuilder、JSON 格式等),选择你喜欢的即可。
-
选择 equals() and hashCode():如果你需要将对象放入
HashSet或作为HashMap的键,这两个方法是必须的。手动编写极易出错,用 Generate 功能则万无一失。
-
技巧:对于 POJO、DTO、Entity 类,在定义完字段后,直接使用 Generate 一次性完成这些方法的生成,是标准操作。
2. 重写/实现方法
当继承一个父类或实现一个接口时,需要重写或实现其中的抽象方法。
-
场景:你的类实现了
Runnable接口,或者继承了一个抽象类。 -
巧妙使用:
-
在类体内,按下
Alt + Insert。 -
选择 Override Methods(重写方法)。
-
IDE 会列出所有可重写的方法,你可以选择一个或多个,它会自动为你生成方法签名和
super.call()(如果需要)。这比你查找父类方法并手动输入要快得多,也更准确。
-
3. 生成测试用例
为现有代码快速生成测试类和方法骨架。
-
场景:你写了一个
Calculator类,里面有add和subtract方法,现在要为其写单元测试。 -
巧妙使用:
-
将光标放在类名
Calculator或方法名add上。 -
按下
Alt + Insert,选择 Test...。 -
IDE 会引导你选择测试框架(JUnit 4/5等)、要测试的方法,并自动生成测试类和方法骨架。你只需要填充测试逻辑即可。
-
4. 代理/委托模式
当你有一个成员变量,并希望将对该变量的某些方法调用委托给外部时,这个功能非常强大。
-
场景:你有一个
MyList类,内部包含一个List<String> list成员,你希望MyList能直接调用list的size()和isEmpty()方法。 -
巧妙使用:
-
在类体内,将光标放在
list字段上,或者直接打开Generate菜单。 -
选择 Delegate Methods(委托方法)。
-
在弹出窗口中,选择
list成员,然后从右侧列表中选择你想要委托的方法(如size,isEmpty)。 -
IDE 会自动生成类似下面的代码:
@Override public int size() { return list.size(); }5. 版本控制相关的提交信息 虽然不是严格意义上的代码生成,但在提交代码时, Generate 菜单也会出现,帮助你快速生成规范的提交信息。 • 场景:在 Commit 窗口,点击输入框。 • 巧妙使用:按下 Alt + Insert ,可以选择生成 最近的消息、分支名称 等,辅助你快速填写。
-
四、提升效率的高级技巧与习惯
-
肌肉记忆快捷键:将
Alt + Insert变成你的本能反应。这是使用 Generate 的第一步,也是最重要的一步。 -
活用“快速修复”:当 IDE 在代码左侧显示黄色灯泡 💡 时,可以按
Alt + Enter。这通常是上下文感知的Generate,它会提示你“实现抽象方法”、“创建构造函数匹配父类”等,比手动打开 Generate 菜单更智能。 -
使用 File and Code Templates:如果你发现某些代码结构(如新的 Java 类、Spring Boot 控制器等)你总是需要添加相同的注释、注解或方法,可以进入
Settings/Preferences->Editor->File and Code Templates进行自定义。这样,当你新建一个文件时,基础代码就已经生成了。 -
使用 Live Templates:这是比
Generate更细粒度的代码片段生成。例如,输入psvm生成main方法,输入sout生成System.out.println。你可以自定义自己的 Live Template,比如输入logi生成log.info(...)。 -
链式操作:定义一个类后,连续使用
Generate完成构造器、Getter、toString等一系列操作,形成一个流畅的工作流。
3481

被折叠的 条评论
为什么被折叠?



