Lombok(1.14.8) - @NoArgsConstructor, @RequiredArgsConstructor & @AllArgsConstructor


@NoArgsConstructor

@NoArgsConstructor,提供一個無參的構造方法。

package com.huey.hello.bean;

import java.util.Date;

import lombok.Data;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@Data
public class Student {

    private int studNo;
    private String studName;
    private Date birthday;

    // 提供了一個含參構造方法,就不會再默認提供無參構造方法
    public Student(int studNo, String studName, Date birthday) {
        super();
        this.studNo = studNo;
        this.studName = studName;
        this.birthday = birthday;
    }

    public static void main(String[] args) {
        Student stud = new Student();
        stud.setStudNo(10001);
        stud.setStudName("huey");
        stud.setBirthday(new Date());
        System.out.println(stud);     // [OUTPUT]: Student(studNo=10001, studName=huey, birthday=Sat Aug 01 00:03:43 CST 2015)
    }
}

 

@RequiredArgsConstructor

@RequiredArgsConstructor,為所有 final 和 @NonNull 修飾的字段生成一個構造方法。

package com.huey.lombok;

import lombok.Getter;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.Setter;

@RequiredArgsConstructor
public class RequiredArgsConstructorExample {

    @Getter
    private final String finalField;
    @NonNull
    @Getter @Setter
    private String nonNullField;
    @Getter @Setter
    private String commonField;
    
    public static void main(String[] args) {
        RequiredArgsConstructorExample foo = new RequiredArgsConstructorExample("FINAL FIELD", "NON NULL FIELD");        
        System.out.println(foo.getFinalField());      // [OUTPUT]: FINAL FIELD
        System.out.println(foo.getNonNullField());    // [OUTPUT]: NON NULL FIELD
    }
    
}

 

@AllArgsConstructor

@AllArgsConstructor,提供一個全參的構造方法。

package com.huey.hello.bean;

import java.util.Date;

import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public class Student {

    private int studNo;
    private String studName;
    private Date birthday;
    
    public static void main(String[] args) {
        Student stud = new Student(10001, "huey", new Date());
        System.out.println(stud);        // [OUTPUT]: Student(studNo=10001, studName=huey, birthday=Sat Aug 01 00:03:43 CST 2015)                        
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM