是Lombok的onConstructor财产';s@[No | All | Required]args构造函数注释仅适用于Java 7样式?
根据,Lombok有3个用于生成构造函数的注释:是Lombok的onConstructor财产';s@[No | All | Required]args构造函数注释仅适用于Java 7样式?,java,lombok,Java,Lombok,根据,Lombok有3个用于生成构造函数的注释: @noargsconstuctor-生成一个空构造函数 @allargsconstuctor-生成初始化所有 田地 @RequiredArgsConstructor-生成一个 仅初始化final字段 它们都有一个onConstructor属性,允许您指定用于标记生成的构造函数的注释 根据,这个特性的语法取决于JDK版本(对此我们无能为力;这是为了解决javac bug) 直至JDK7: @NoArgsConstructor(onConstru
-生成一个空构造函数李>@noargsconstuctor
-生成初始化所有 田地李>@allargsconstuctor
-生成一个 仅初始化@RequiredArgsConstructor
字段final
onConstructor
属性,允许您指定用于标记生成的构造函数的注释
根据,这个特性的语法取决于JDK版本(对此我们无能为力;这是为了解决javac bug)
直至JDK7:
@NoArgsConstructor(onConstructor=@__({@AnnotationsGoHere}))
从JDK8:
@NoArgsConstructor(onConstructor_={@AnnotationsGohere}) // note the underscore after onConstructor
我正在研究JDK8。但是,只有JDK7变体对我有效,而JDK8变体不起作用(生成了一个没有注释的构造函数)
我检查了JDK11-结果相同
我使用重构->Delombok->@构造函数进行检查
例如,像这样:
@AllArgsConstructor(onConstructor = @__(@Deprecated))
public class SomeClass {
}
生成以下代码:
public class SomeClass {
@Deprecated
public SomeClass() {
}
}
public class SomeClass {
public SomeClass() {
}
}
但就像这样:
@AllArgsConstructor(onConstructor_ = @Deprecated)
public class SomeClass {
}
生成如下代码:
public class SomeClass {
@Deprecated
public SomeClass() {
}
}
public class SomeClass {
public SomeClass() {
}
}
我注意到Lombok站点上的文档只包含一个JDK7样式的示例
Javadoc不正确或者我做错了什么?我发现,这不是龙目巨人的错误,而是错误 构造函数注释添加到编译代码中
Lombok IntelliJ插件的Delombok工具错误地将Lombok的注释转换为普通Java代码。我发现,这不是Lombok的bug,而是bug 构造函数注释添加到编译代码中
Lombok IntelliJ插件的Delombok工具无法将Lombok的注释转换为普通Java代码。我认为StackOverflow不是解决此类问题的最佳场所。通过在他们的github页面上创建一个问题,直接询问Lombok作者可能会更好。。。我用
@弃用的进行了测试。你能展示一个例子吗?好的,我已经添加了一个例子。我认为StackOverflow不是回答这样问题的最佳场所。通过在他们的github页面上创建一个问题,直接询问Lombok作者可能会更好。。。我用@弃用的进行了测试。你能展示一个例子吗?好的,我已经添加了一个例子。