使用IDEA的 Generate快速生成代码

一、前言

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 的主要作用

  1. 减少重复劳动:自动化生成 Getter/Setter、构造函数、toString()equals() 和 hashCode() 等样板代码。

  2. 保证代码正确性:自动生成的代码(尤其是 equals 和 hashCode)几乎不会出错,避免了手动编写可能带来的隐患。

  3. 遵循最佳实践:生成的代码通常符合语言规范和社区标准。

  4. 加速开发流程:只需几次按键就能完成原本需要几分钟的输入工作,极大提升编码速度。

  5. 统一代码风格:确保团队中所有成员生成的代码格式一致。

四、Generate 的常见用法与巧妙使用技巧

下面通过一些具体场景来看看如何“巧妙”地使用它。

1. 快速生成类的“基础设施”(最常用)

当你定义了一个包含几个字段的类后,接下来的工作就是为它们生成方法。

  • 场景:你创建了一个 User 类,有 idnameemail 字段。

  • 巧妙使用

    1. 在类体内,按下 Alt + Insert

    2. 选择 Constructor(构造函数):可以快速选择部分或全部字段生成构造方法。例如,只选择 name 和 email 生成一个用于创建的构造函数。

    3. 选择 Getter and Setter:可以批量选择所有字段或指定字段,一键生成所有 Getter 和 Setter 方法,当然这个现在一般引入lombok进行管理,不再添加到代码中。

    4. 选择 toString():在调试和日志打印时非常有用。IDE 会提供多种模板(如 String concat、StringBuilder、JSON 格式等),选择你喜欢的即可。

    5. 选择 equals() and hashCode():如果你需要将对象放入 HashSet 或作为 HashMap 的键,这两个方法是必须的。手动编写极易出错,用 Generate 功能则万无一失。

技巧:对于 POJO、DTO、Entity 类,在定义完字段后,直接使用 Generate 一次性完成这些方法的生成,是标准操作。

2. 重写/实现方法

当继承一个父类或实现一个接口时,需要重写或实现其中的抽象方法。

  • 场景:你的类实现了 Runnable 接口,或者继承了一个抽象类。

  • 巧妙使用

    1. 在类体内,按下 Alt + Insert

    2. 选择 Override Methods(重写方法)

    3. IDE 会列出所有可重写的方法,你可以选择一个或多个,它会自动为你生成方法签名和 super.call()(如果需要)。这比你查找父类方法并手动输入要快得多,也更准确。

3. 生成测试用例

为现有代码快速生成测试类和方法骨架。

  • 场景:你写了一个 Calculator 类,里面有 add 和 subtract 方法,现在要为其写单元测试。

  • 巧妙使用

    1. 将光标放在类名 Calculator 或方法名 add 上。

    2. 按下 Alt + Insert,选择 Test...

    3. IDE 会引导你选择测试框架(JUnit 4/5等)、要测试的方法,并自动生成测试类和方法骨架。你只需要填充测试逻辑即可。

4. 代理/委托模式

当你有一个成员变量,并希望将对该变量的某些方法调用委托给外部时,这个功能非常强大。

  • 场景:你有一个 MyList 类,内部包含一个 List<String> list 成员,你希望 MyList 能直接调用 list 的 size() 和 isEmpty() 方法。

  • 巧妙使用

    1. 在类体内,将光标放在 list 字段上,或者直接打开 Generate 菜单。

    2. 选择 Delegate Methods(委托方法)

    3. 在弹出窗口中,选择 list 成员,然后从右侧列表中选择你想要委托的方法(如 sizeisEmpty)。

    4. IDE 会自动生成类似下面的代码:

      @Override
      public int size() {
          return list.size();
      }

      5. 版本控制相关的提交信息 虽然不是严格意义上的代码生成,但在提交代码时, Generate  菜单也会出现,帮助你快速生成规范的提交信息。 •  场景:在 Commit 窗口,点击输入框。  •  巧妙使用:按下  Alt + Insert ,可以选择生成 最近的消息、分支名称 等,辅助你快速填写。

四、提升效率的高级技巧与习惯

  1. 肌肉记忆快捷键:将 Alt + Insert 变成你的本能反应。这是使用 Generate 的第一步,也是最重要的一步。

  2. 活用“快速修复”:当 IDE 在代码左侧显示黄色灯泡 💡 时,可以按 Alt + Enter。这通常是上下文感知的 Generate,它会提示你“实现抽象方法”、“创建构造函数匹配父类”等,比手动打开 Generate 菜单更智能

  3. 使用 File and Code Templates:如果你发现某些代码结构(如新的 Java 类、Spring Boot 控制器等)你总是需要添加相同的注释、注解或方法,可以进入 Settings/Preferences -> Editor -> File and Code Templates 进行自定义。这样,当你新建一个文件时,基础代码就已经生成了。

  4. 使用 Live Templates:这是比 Generate 更细粒度的代码片段生成。例如,输入 psvm 生成 main 方法,输入 sout 生成 System.out.println。你可以自定义自己的 Live Template,比如输入 logi 生成 log.info(...)

  5. 链式操作:定义一个类后,连续使用 Generate 完成构造器、Getter、toString 等一系列操作,形成一个流畅的工作流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值