AI 辅助 Java 开发的实战经验:大模型到底能帮你到什么程度?
AI 辅助 Java 开发的实战经验:大模型到底能帮你到什么程度?
先说一个反直觉的结论:用 AI 写代码,"让它一次性写完整个类"往往是最低效的用法;真正让你提效的,是把它当成一个"能理解你代码库的结对程序员",拆碎任务、给它上下文、让它补你不爱做的部分。 这篇文章是我把大模型用在 Java 工程里的实测经验,能帮到什么、哪儿最好用、哪儿会翻车,一次讲清。
一、先别神化 AI:它能帮的三件事
过去半年我把 AI 塞进了日常开发,真正稳定提效的就三类:
- 把"脏活"交给它:写重复的 CRUD、DTO、Mapper、单元测试、
build.gradle、Dockerfile、配置类 —— 这些不烧脑但费时,AI 又快又准。 - 快速定位与解释:报错栈、
ClassCastException、NullPointerException、版本冲突、Spring启动失败 —— 让它"读这个报错,告诉我最可能的原因和下一步",比逐行翻文档快得多。 - 当"第二双眼睛":Code Review、补齐边界条件、帮你写
README/注释/接口文档,甚至把一段烂代码重构成更可读的版本。
二、实测:不同工具到底适合什么
| 工具 | 定位 | 我最常用的场景 |
|---|---|---|
| GitHub Copilot | IDE 内补全 | 写样板代码、自动补类型/参数,最"顺滑" |
| Cursor | AI 原生 IDE | 让它理解整个项目改代码、多文件联动、对话式修改 |
| Claude Code / Codex CLI | 终端 Agent | 一句话"修这个 bug / 加这个功能",它自己跑测试 |
| DeepSeek / ChatGPT | 对话 | 问原理、解释报错、让它评审一段代码、生成复杂 SQL |
关键差别:补全类和 Agent 类不是一回事。Agent 类(能自己读文件、跑命令、多轮修改)适合"改、修、重构";补全类适合"写、快速填充"。选错场景,效率反而下降。
三、真正提效的 10 条经验
- 任务拆小,别一次给一个"大需求":让它做"给这个 Service 加个分页方法",比"给这个模块加订单功能"成功率高得多。
- 喂够上下文:把相关的类、方法签名、报错、甚至一段数据贴给它。上下文越准,产出越对。
- 让它先"说要怎么做"再写:
先别急着写,说一下你会怎么改、改哪几个文件—— 它能帮你理清思路,也能先暴露它理解错了。 - 代码库索引是 Agent 的命门:在 Cursor/Claude Code 里先建立对项目结构的索引,否则它会"猜"代码路径,经常改错地方。
- 让 AI 写测试,是性价比最高的一招:
帮这个类写单测,覆盖正常 + 边界 + 异常,测试一多,重构就敢做。 - 用 AI 做 Code Review:
这段代码有什么坑?性能、并发、可读性角度—— 常常能指出你忽略的NPE、资源未释放。 - 让 AI 解释"为什么":不只是给答案,问它"为什么这里会 NPE""为什么这个事务不回滚",顺便学习。
- 约束输出:明确"只要代码 / 只要一个 Markdown 表 / 输出 JSON,不要解释",避免它长篇大论。
- 别让 AI 背锅,也别全信:凡是上线代码必须 review。AI 会自信地编造不存在的 API、写出能编译但逻辑错的实现。
- 注意隐私与合规:别把密钥、生产真实数据、内部敏感信息贴给它;敏感逻辑要么脱敏,要么本地模型。
四、别踩的坑(重要)
- 别让它"全自动改多文件 + 直接提交":它经常改到方向错了还"自信"地继续。要一步一确认。
- 别让它生成你完全看不懂的代码:你review不动,将来维护就是灾难。
- 别拿它背锅:上线出问题,责任在你,不在 AI 的"建议"。
- 别把 AI 当搜索引擎:它会编造引用和 API,关键结论要回到官方文档/源码核实。
五、总结与我的工作流
我现在的日常流是:让它在 IDE 里补写样板 → 遇到报错让它解释 → 改需求用 Agent 类工具、但每次只看一个文件、改完我 review → 复杂逻辑我自己写、用它做 review。
一句话:AI 是放大器,不是替代品。 它放大的是"你本来就擅长做的事";如果你自己都不清楚要什么、不会 review,它只会用错误的方向加速你踩坑。
系列预告:下一篇(AI 工程落地 · 技术向)聊《用 Java 接入大模型 API:工程实践与坑》,把它真正接到你的业务里。
浙公网安备 33010602011771号