Java基础:Java链式编程小记
链式编程可以点点点出属性,通过返回对象本身(this
)可以调用本身的属性。
一般在创建对象并给属性赋值时使用。
这种方式使用会越来越多,很多Apache工具如HttpClient里给RequestConfig
赋值,JDK里面有些类或方法也使用,如:StringBuffer
的 append()
方法。
个人认为的优点:
- 易于编程(编程性强),易于理解(阅读性强)。
- 代码简洁清爽。属性多时赋值不会看到一堆感觉较
low
很多行的对象引用调set
方法。
两者的本质并什么区别;但在代码程面只要有一点优化,也是一种好方法好思路,也是更先进的,值得推广和使用。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59public class User {
private String name;
private String nickName;
private int age;
private String address;
private String phoneNum;
public String getNickName() {
return nickName;
}
public User setNickName(String nickName) {
this.nickName = nickName;
return this;
}
public String getAddress() {
return address;
}
public User setAddress(String address) {
this.address = address;
return this;
}
public String getPhoneNum() {
return phoneNum;
}
public User setPhoneNum(String phoneNum) {
this.phoneNum = phoneNum;
return this;
}
public String getName() {
return name;
}
public User setName(String name) {
this.name = name;
return this;
}
public int getAge() {
return age;
}
public User setAge(int age) {
this.age = age;
return this;
}
public String toString() {
return "User [name=" + name + ", nickName=" + nickName + ", age=" + age + ", address=" + address + ", phoneNum="
+ phoneNum + "]";
}
public static void main(String[] args) {
User user = new User()
.setAge(22)
.setName("张三")
.setAddress("xxxxx")
.setNickName("san er")
.setPhoneNum("13688889999");
System.out.println(user);
}
}
Java基础:Java链式编程小记
http://blog.gxitsky.com/2018/03/26/Java-jdk-6-linkProgramming/