Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是Lombok的onConstructor财产';s@[No | All | Required]args构造函数注释仅适用于Java 7样式?_Java_Lombok - Fatal编程技术网

是Lombok的onConstructor财产';s@[No | All | Required]args构造函数注释仅适用于Java 7样式?

是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

根据,Lombok有3个用于生成构造函数的注释:

  • @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作者可能会更好。。。我用
@弃用的
进行了测试。你能展示一个例子吗?好的,我已经添加了一个例子。