@Builder
public class ProcessorLombokBO {
private String panel;
private String motherBoard;
private String ram;
private String hardDisk;
}
public static void main(String[] args) {
ProcessorLombokBO processorLombokBO =
new ProcessorLombokBO.ProcessorLombokBOBuilder()
.panel("Brown")
.hardDisk("SanDisk 256GB")
.ram("4GB")
.motherBoard("Intel")
.build();
System.out.println(processorLombokBO);
}
Run Code Online (Sandbox Code Playgroud)
I am trying to implemenent @Builder in a POJO, but it gives the below error when I execute the main method.
java: cannot find symbol symbol: class ProcessorLombokBOBuilder
Did I miss something?
我遇到了同样的问题,发现 IntelliJ 中禁用了 @Builder 支持:
小智 5
如果您在 Maven 项目中使用mapstruct-processor插件,则会影响该builder方法。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.2.Final</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
编辑:尝试使您的内部 ProcessorLombokBO 类静态。您不能在内部非静态类上使用 Builder,正如您的示例中的编译错误在我的 IDE (Eclipse) 中所暗示的那样
方法构建器不能声明为静态;静态方法只能在静态或顶级类型中声明
原因是@Builder生成一个内部静态类(ProcessorLombokBOBuilder 类)并添加一个静态方法builder(),根据规范,只有在外部类也是静态的情况下才可能这样做,因为否则您需要一个封闭实例来引用 Builder 类,这与静态类型的概念。
原始帖子:通常您通过以下方式实例化您的构建器
ProcessorLombokBO.builder()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6973 次 |
| 最近记录: |