如何阻止Eclipse将jOOQ表达式赋值给局部变量时自动添加@NotNull注解
解决Eclipse快速修复自动插入
@NotNull注解的问题 问题原理
Eclipse「将语句赋值给新局部变量」快速修复的默认逻辑,是将原表达式对应方法返回值上携带的可空性注解,自动拷贝到新生成的局部变量声明上。jOOQ 3.14+版本的核心方法返回值上标记了org.jetbrains.annotations.NotNull元注解,因此快速修复时会自动附加该注解及对应导入,和IntelliJ IDEA默认不做注解拷贝的行为形成差异。
配置方案
- 全局关闭注解自动拷贝逻辑
打开Eclipse首选项,依次进入Java > Editor > Content Assist配置页,取消勾选Copy annotations from target method to local variable选项。配置生效后,使用快速修复引入局部变量时,将不再自动拷贝原方法返回值上的任何注解。 - 定向排除JetBrains系列注解
如果项目其他场景需要保留Eclipse自动生成可空性注解的能力,无需完全关闭该功能,可进入Java > Code Style > Annotations配置页,在「Ignored annotations」列表中添加org.jetbrains.annotations.NotNull、org.jetbrains.annotations.Nullable等需要排除的JetBrains注解。Eclipse生成代码时会自动跳过这些注解的拷贝,不影响其他自定义注解的自动生成逻辑。 - 校验保存动作的关联规则
进入Java > Editor > Save Actions配置页,确认附加代码清理动作中,未启用「Copy non-default annotations to new local variables」规则,避免代码保存时自动补全之前遗漏的注解。
临时处理方式
若已生成带@NotNull的局部变量代码,可直接手动删除注解行,Eclipse会自动识别无用的org.jetbrains.annotations.NotNull导入语句并完成清理。
内容的提问来源于stack exchange,提问作者Lukas Eder
相关产品推荐
相关产品推荐

