Postfix模板.notNull可一键生成规范非空校验结构;需在Settings→Editor→General→Postfix Completion中启用Java的notnull模板,新版IDEA(如2023.3+)已内置,旧版或定制版需手动添加。

在Java开发中频繁处理对象判空逻辑时,直接手写if (obj != null) {...}既费时又容易漏掉大括号或写反条件,用Postfix模板.notNull可一键生成规范、带格式的非空校验结构。
确认.notNull模板已启用
打开 Settings → Editor → General → Postfix Completion → 勾选 Java 语言项 → 确保 notnull 行右侧开关为开启状态。若列表中没有 notnull,说明当前IDEA版本未默认启用该模板(较新版本如2023.3+已内置),需手动添加。
注意:部分企业定制版IDEA或旧版本(
基础用法:变量后输入.notnull + Tab
在编辑器中输入一个已声明的对象变量名(如 user),紧接输入 .notnull,然后按 Tab 键。
IDEA会立即生成标准非空判断块:if (user != null) {,光标自动停在花括号内首行,可直接开始编写业务逻辑。
这一步不能用 Enter 替代 Tab —— Enter 会插入换行而非触发模板,导致代码变成 user.notnull 字面量,无法补全。
进阶技巧:链式调用与嵌套判空
方法一:对方法调用结果直接判空
写完 service.getUserById(100) 后,不加空格直接输入 .notnull → 按 Tab,生成 if (service.getUserById(100) != null) {。IDEA自动将整个表达式包裹进判断条件,无需手动加括号。
方法二:多级判空连用
先写 user.getAddress() → .notnull → Tab,得到第一层判空;再在花括号内输入 .notnull → Tab,光标会自动定位到新生成的 if 内部,继续生成 if (user.getAddress() != null) {。这种嵌套写法比手动敲两次 if 更快且缩进自动对齐。
【关键前提】 链式调用中每一步返回类型必须可判空(即非基本类型),否则 .notnull 不会出现提示——例如对 int 类型调用 .notnull 不会触发补全,这是IDEA的类型安全保护机制,不是模板失效。
替换方案:使用.nn快捷别名
nn 是 notnull 的官方简写,功能完全一致,但击键更少。
输入 user.nn → Tab,效果与 user.notnull → Tab 完全相同。
推荐日常编码统一使用 .nn:它在所有支持 notnull 的IDEA版本中都可用,且避免拼错 notnull 中的双 l 或 t。


















