龙目岛:必需的参数构造函数不起作用

2022-09-01 13:42:14

似乎在下面的代码中不起作用。这是为什么呢?@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;
}

我收到错误:

javax.faces.el.EvaluationException: java.lang.Error: Unresolved compilation problem: 
    The constructor User(String) is undefined

出于某种原因,它似乎确实适用于其他未定义构造函数但使用注释的域类。@RequiredArgsConstructor


答案 1

根据文档,必需参数是最终字段和具有约束(如@NonNull)的字段。

您需要将用户名设为@NonNull

@NonNull private String username;

你也需要让它们成为最终的。


答案 2

对于未来的读者来说,同样值得注意的是,@Data还提供了@RequiredArgsConstructor,因此没有必要同时使用这两个注释:)


推荐