链式调用实际上就是**对象.方法名().下一个方法名();**的一个风格吧。
我们来看看如何使用链式调用。
public class Demo {
private String name;
private int old;
private String sex;
public String getName() {
return name;
}
public Demo setName(String name) {
this.name = name;
return this;
}
public int getOld() {
return old;
}
public Demo setOld(int old) {
this.old = old;
return this;
}
public String getSex() {
return sex;
}
public Demo setSex(String sex) {
this.sex = sex;
return this;
}
public Demo(String name, int old, String sex) {
this.name = name;
this.old = old;
this.sex = sex;
}
public Demo() {
}
@Override
public String toString() {
return "Demo [name=" + name + ", old=" + old + ", sex=" + sex + "]";
}
public static void main(String[] args) {
//链式调用
Demo demo = new Demo().setName("张三").setOld(30).setSex("男");
//输出对象
System.out.println(demo.toString());
}
}
可以看到我们的set方法和以往的有所区别。
以往的set方法
//返回值为空
public void setName(String name) {
this.name = name;
}
链式调用的set方法
//返回值为当前对象的引用
public Demo setName(String name) {
this.name = name;
return this;
}
可以看到我们在最上面的代码中直接使用了构造方法.setName();
也就是这段代码
//链式调用
Demo demo = new Demo().setName("张三").setOld(30).setSex("男");
我们写的构造方法虽然没有返回值,但是实际上默认返回的是一个对象的地址,所以可以在构造方法后面直接链式调用其他方法。