---
# System prepended metadata

title: Lombok 註解
tags: [Java, Lombok, annotation]

---

# Lombok 註解
### @ NoArgsConstructor：
自動生成無參數建構子
#### @ NoArgsConstructor(force = true)：
為沒有初始化的final欄位設定預設值 0 / false / null
#### @ NoArgsConstructor(staticName = "UserHa")
是否生成靜態的構造方法，如果生成靜態的構造方法，那麼原來的例項構造方法將會被私有（private），然後建立一個你指定名稱的靜態構造方法，並且是public的
```java=
@NoArgsConstructor(staticName = "UserHa")
public class User {
    private String username;
    private String password;
}
// 編譯後：
public class User {
    private String username;
    private String password;

    private User() { }

    public static User UserHa() {
        return new User();
    }
}
```

### @ AllArgsConstructor：
自動生成全參數建構子
### @ Data：
自動加入@ToString,@EqualsAndHashCode,@Getter方法，非 final 參數添加@Setter,@RequiredArgsConstructor
### @ NonNull：
自動檢查方法的參數是否為空, 若為空則拋出NullPointException

###### tags: `Java` `Lombok` `annotation`