@NoArgsConstructor、@Getter、@Setter註解及Lombok的使用

maslii發表於2018-08-11

1、@NoArgsConstructor、@Getter、@Setter是屬於LomBok使用的範疇;

2、lombok是一個可以通過簡單的註解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 Java 程式碼的工具,例如:比如通常情況下我們需要手動去建立getter和setter方法,建構函式之類的,而lombok的作用就是能夠在我們編譯原始碼的時候自動幫我們生成這些方法。

3、Lombok的引入:

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.10</version>
    </dependency>
</dependencies>

外加Intellij idea開發的話需要安裝Lombok plugin,同時設定 Setting -> Compiler -> Annotation Processors -> Enable annotation processing勾選。

4、常見的Lombok的使用:
1)空指標

import lombok.NonNull;
    public class NonNullExample extends Something {
        private String name;  
        public NonNullExample(@NonNull Person person) {
        this.name = person.getName();
    }
}

2)生成setter和getter方法:

import lombok.AccessLevel;
    import lombok.Getter;
    import lombok.Setter;
    public class GetterSetterExample {
        @Getter @Setter private int age = 10;
        @Setter(AccessLevel.PROTECTED) private String name;
    }

此外:

@NoArgsConstructor: 自動生成無引數建構函式。
@AllArgsConstructor: 自動生成全引數建構函式。
@Data: 自動為所有欄位新增@ToString, @EqualsAndHashCode, @Getter方法,為非final欄位新增@Setter,和@RequiredArgsConstructor

相關文章