IntelliJ IDEA 自动生成 Getter/Setter 教程

夏强吖_7964

夏强吖_7964

2026-08-17

750人浏览

原创

alt+insert/cmd+n生成getter/setter需满足光标在类大括号内、字段为非final非static类成员;布尔字段active生成isactive();lombok启用时禁用手动生成,否则报重复方法错误。

intellij idea 自动生成 getter/setter 教程

直接用 Alt + Insert(Windows/Linux)或 Cmd + N(macOS)就能生成,但选错入口、忽略字段可见性、没关 Lombok 冲突会导致生成失败或运行时报错。

光标位置和快捷键必须匹配

快捷键只在类内部生效,光标不能落在方法体里、注释中或类声明行外。如果按了没反应,先确认光标是否在 class { ... } 的大括号范围内。

  • 正确位置示例:public class User { private String name; // ← 光标放这里或下面空行都行 }
  • 错误位置示例:光标在 public static void main(String[] args) { ... } 里面,此时弹出的是“Generate method”而非字段相关选项
  • Mac 用户注意:Cmd + N 是主入口,不是 Cmd + Shift + N(那是全局搜索)

生成前必须先声明字段,且不能是 final 或局部变量

IDEA 只识别类级(private/protected/public)成员变量,final 字段默认不生成 setter,静态字段(static)也不会出现在字段选择列表中。

Content Ideas Generator
Content Ideas Generator

根据参考资料生成智慧型社交帖子结构化大纲。适用于从简报、脚本或笔记中提取核心概念,转化为包含悖论、转变与深刻洞察的爆款大纲。

下载
  • 能被识别的字段:private String email;protected int id;
  • 不会出现的字段:final String token;getter 可生成,setter 灰掉)、static boolean DEBUG = true;(根本不出现在勾选框里)
  • 布尔字段命名特殊:private boolean active; 会生成 isActive() 而非 getActive();若字段名是 isLocked,则生成 isIsLocked() —— 这属于 JavaBean 规范陷阱,建议避免以 is 开头的布尔字段名

别混用 Lombok 和手动生成,否则编译报错

如果项目已启用 Lombok(@Getter/@Setter),再手动用 Alt + Insert 生成相同方法,会导致编译时报 duplicate method 错误。

  • 检查是否启用了 Lombok:看 pom.xmlbuild.gradle 是否含 lombok 依赖,以及 IDEA 设置里 Settings > Build > Compiler > Annotation Processors 是否勾选了 Enable annotation processing
  • 冲突时优先删手动代码:Lombok 生成的方法在编译期注入,源码里看不到,但运行时存在;手动写的同名方法会与之冲突
  • 临时禁用 Lombok 注解:在类上加 // @Getter @Setter 注释,再用快捷键生成,可绕过冲突(适合调试或迁移场景)

封装字段(Refactor → Encapsulate Fields)和 Generate 是两回事

Refactor | Encapsulate Fields 不只是生成 getter/setter,还会自动把类内所有直接访问该字段的地方替换成方法调用,而 Generate 只是插入新方法,不做任何替换。

  • 适用场景:Encapsulate Fields 适合已有代码大量直访问 field,想统一转成 getField()Generate 适合新建类、写新逻辑
  • 风险点:如果字段被子类继承并直接访问(比如 protected 字段),Encapsulate Fields 不会修改子类代码,可能导致子类行为异常
  • 可见性控制:Encapsulate Fields 对话框里能单独设 getter/setter 的访问修饰符(public/protected),Generate 则固定为 public

最常被忽略的是布尔字段命名引发的 isActive() vs getActive() 差异,以及 Lombok 启用后仍手动生成导致的编译失败 —— 这两个点一旦出问题,往往要花几分钟排查,而不是几秒解决。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

idea intellij idea

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

140

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

60

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

60

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

40

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

40

27

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

2026.09.11

360

28

GDB怎么查看变量值
GDB怎么查看变量值

本专题介绍GDB调试过程中查看变量值的具体方法,涵盖局部变量、函数参数、数组、结构体和指针内容查询,同时整理变量持续显示、格式化输出及无法读取变量时的排查思路。

2026.09.11

120

22

GDB C++程序怎么调试
GDB C++程序怎么调试

本专题围绕GDB调试C++程序的实际过程,详细说明程序编译、调试器启动、命令行参数传入、断点命中和程序继续运行等步骤,并介绍条件断点、临时断点和观察点的设置方法,方便开发者跟踪复杂代码的执行状态。

2026.09.11

120

20

Iris框架MVC架构与依赖注入合集
Iris框架MVC架构与依赖注入合集

本专题讲解Iris框架MVC开发模式,包含控制器注册、方法命名与路径映射、By参数绑定、BeforeActivation自定义路由,以及依赖注入容器注册、数据库依赖注入、返回值序列化及MVC下WebSocket与gRPC整合实践。

2026.09.11

80

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程