Java方法的链式调用

898 阅读1分钟

链式调用实际上就是**对象.方法名().下一个方法名();**的一个风格吧。

我们来看看如何使用链式调用。

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("男");

我们写的构造方法虽然没有返回值,但是实际上默认返回的是一个对象的地址,所以可以在构造方法后面直接链式调用其他方法。