龙目岛:RequiredArgsConstructor 不工作

新手上路,请多包涵

似乎 @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 注释的域类。

原文由 rozerro 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

根据 Documentation ,必需参数是最终字段和具有约束的字段,例如 @NonNull。

您需要将用户名设为@NonNull

 @NonNull private String username;

你也需要让它们最终化。

原文由 a3.14_Infinity 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

原文由 adrianostgard 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题