2016-06-07 394 views
4

看起來@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註釋其他領域類的工作。

回答

8

根據Documentation, 所需參數是最終字段和帶有約束條件的字段,例如@NonNull。

你需要讓用戶名爲@NonNull

@NonNull private String username; 

而且你需要讓他們最終也。

+5

而'final'字段!不要忘記'final'字段。 「最後」字段通常不會獲得太多的愛(*故意重複* = D) – Augusto