什么是链式调用?
最常接触链式调用是在JavaScript里,实现很简单,在调用某个对象的某个方法,在被调用的的方法返回当前这个对象,从而实现链式调用。
function createObj() {
let obj = {};
o.toStringFoo = "";
o.addSomething = function(foo) {
this.toStringFoo = foo;
return this;
}
o.doSomething = function(content) {
console.log(content);
return this;
}
return obj;
}
/* 在这里我们实例化一个对象 */
var obj = new createObj();
/* 这里就是所谓的链式调用 */
var temp = obj.addSomething("hello,javascript")
.doSomething("Hello,World");
/* 我们可以在控制台打印一下,看temp里究竟存放着什么 */
console.log(temp);
Java中实现如上所述的链式调用
那么在Java中我们如何实现同上的效果呢?估计看了上面的代码之后,聪明的人已经知道如何在Java中实现链式调用了,很简单,我们在每次调用某个对象的某个方法之后,在那个方法中返回当前对象就可以了。
public class Person {
private String name;
private int age;
public String getName() {
return this.name;
}
public Person setName(String name) {
this.name = name;
return this;
}
public int getAge() {
return this.age;
}
public Person setAge(int age) {
this.age = age;
return this;
}
}
public class MainMethod {
public static void main(String[] args) {
new Person().setName("SunZhenyu")
.setAge(20);
}
}
最后
那么我们为什么要用链式调用呢?想想,如果你有一个方法,要求传入参数为某一个对象,你是不是需要先new出来这个对象,然后分别去调用它相应的方法,这样代码繁琐、臃肿,链式调用就很好的帮我们解决了这个问题。