前言
現(xiàn)在很多開源庫或者代碼都會使用鏈?zhǔn)秸{(diào)用迷雪。因為鏈?zhǔn)秸{(diào)用在很多時候颂龙,都可以使我們的代碼更加簡潔易懂葵第。以下Student類有多數(shù)個屬性税弃,讓我們看看非鏈?zhǔn)秸{(diào)用和鏈?zhǔn)秸{(diào)用有何區(qū)別。
非鏈?zhǔn)秸{(diào)用
Main類:
/**
* Created by chenxuxu on 17-1-10.
*/
public class Main {
public static void main(String[] args) {
Student stu = new Student();
stu.setAge(22);
stu.setName("chenxuxu");
stu.setGrade("13級");
stu.setNo("123456789");
stu.setMajor("軟件工程");
}
}
Student類:
/**
* 學(xué)生類
*
* Created by chenxuxu on 17-1-10.
*/
public class Student {
/**
* 姓名
*/
private String name;
/**
* 年齡
*/
private int age;
/**
* 學(xué)號
*/
private String no;
/**
* 年級
*/
private String grade;
/**
* 專業(yè)
*/
private String major;
//...此處省略getter&setter
}
鏈?zhǔn)秸{(diào)用
Main類:
/**
* Created by chenxuxu on 17-1-10.
*/
public class Main {
public static void main(String[] args) {
Student.builder()
.stuName("chenxuxu")
.stuAge(22)
.stuGrade("13級")
.stuMajor("軟件工程")
.stuNo("123456789");
}
}
Student類:
/**
* 學(xué)生類
*
* Created by chenxuxu on 17-1-10.
*/
public class Student {
/**
* 不能通過new初始化
*/
private Student(){}
public static Builder builder(){
return new Builder();
}
static class Builder{
/**
* 姓名
*/
private String name;
/**
* 年齡
*/
private int age;
/**
* 學(xué)號
*/
private String no;
/**
* 年級
*/
private String grade;
/**
* 專業(yè)
*/
private String major;
public Builder stuName(String name){
this.name = name;
return this;
}
public Builder stuAge(int age){
this.age = age;
return this;
}
public Builder stuNo(String no){
this.no = no;
return this;
}
public Builder stuGrade(String grade){
this.grade = grade;
return this;
}
public Builder stuMajor(String major){
this.major = major;
return this;
}
}
}
結(jié)論
通過鏈?zhǔn)秸{(diào)用后伺帘,代碼看起來簡潔易懂搞糕。