它似乎@RequiredArgsConstructor不适用于下面的代码.为什么?
import java.io.Serializable;
import lombok.Data;
import lombok.RequiredArgsConstructor;
@Data
@RequiredArgsConstructor
public class User implements Serializable {
private String username;
/*public User(String username) {
this.username = username;
}*/
private static final long serialVersionUID = 8043545738660721361L;
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
javax.faces.el.EvaluationException: java.lang.Error: Unresolved compilation problem:
The constructor User(String) is undefined
Run Code Online (Sandbox Code Playgroud)
出于某种原因,它似乎适用于其他没有构造函数定义但是使用@RequiredArgsConstructor注释的域类.
a3.*_*ity 26
根据文档,必需参数是最终字段和具有约束的字段,例如@NonNull.
您需要将用户名设为@NonNull
@NonNull private String username;
Run Code Online (Sandbox Code Playgroud)
而你也需要让它们成为决赛.
adr*_*ard 10
对于未来的读者,还值得注意的是@Data还提供了@RequiredArgsConstructor,因此不需要同时使用这两个注释:)
您是否在 IntelliJ 中安装了 Lombok 插件?
如果没有那么
File -> Settings -> Plugins: Search for Lombok (CodeStream) version.
重新启动IDE,它应该被修复。
再检查一遍:
Annotation Processors从 IntelliJ IDE启用File -> Settings: Search for Annotation Processors