从jooq 3.14开始,当使用代码如下的jooq时:
DSL.val(1);
我喜欢将上面的表达式赋给局部变量,因此我使用eclipse ide快速修复操作“assign statement to new local variable”,它添加了以下导入:
import org.jetbrains.annotations.NotNull;
并生成以下代码:
@NotNull
Param<Integer> val = DSL.val(1);
intellij的“引入局部变量”快速修复程序不会产生所需的代码:
Param<Integer> val = DSL.val(1);
不需要的插入 @NotNull
你能阻止吗?
1条答案
按热度按时间xoshrz7s1#
eclipse中有一个挂起的bug可以修复此问题:https://bugs.eclipse.org/bugs/show_bug.cgi?id=565463. 当前行为的基本原理(仍存在于2020-2012(4.18.0))可以从该问题中看出。
解决方法是在“首选项”>“java编译器”>“错误/警告”>“启用基于注解的空值分析”中启用基于注解的空值分析
... 以及将jetbrains注解设置为主要和/或次要注解:
eclipse可能找不到注解,在这种情况下,解决方法可能是手动编辑项目的注解
.settings/org.eclipse.jdt.core.prefs
文件,添加以下内容:这种解决方法的副作用当然是空分析现在在jooq代码上处于活动状态,这可能是您想要的,也可能不是您想要的。