Java返回当前对象的好处

自己使用了一个第三方框架,发现非常的灵活,于是去研究了下,才知道是返回当前对象,才可以做到,例如以下案例:

    // 可以不断的点出很多函数
        Glide.with(PhotoPagerSlitherActivity.this)
        .load(output.toByteArray())
        .centerCrop()
        .crossFade()
        .placeholder(R.drawable.app_pic_file_bg)
        .into(zoomImageView);

    // 可以点出很多方法,也可以点吃一个方法,非常灵活
     Glide.with(PhotoPagerSlitherActivity.this)
        .load(output.toByteArray())
        //.centerCrop()
        //.crossFade()
        //.placeholder(R.drawable.app_pic_file_bg)
        .into(zoomImageView);

于是去研究了下,之所以可以无限制的点出很多方法,是因为它返回当前对象自己:

以下举例实现:

/**
 * 定义一个工具类接口
 * @author Liudeli
 */
public interface IUtil {

    /**
     * 此函数目的就是打印一句话
     */
    public void getPrintln1();

    /**
     * 此函数目的就是打印一句话
     * 返回对象为接口的子类自己
     */
    public Util getPrintln2();
}

/**
 * 此类用于某个方法的打印
 * @author Liudeli
 */
public class Util implements IUtil{

    /**
     * 此方法非常简单,就是打印一句话
     */
    public void getPrintln1() {
        System.out.println("getPrintln2...");
    }

    /**
     * 此方法非常简单,就是打印一句话
     * @return 返回对象本身:当前对象
     */
    public Util getPrintln2() {
        System.out.println("getPrintln2...");
        // this 放回当前对象
        return this;
    }

}

/**
 * @author Liudeli
 */
// 测试程序
public class Main {

    public static void main(String[] args) {

        // IUtil是父类,他去new自己的子类,当然没任何问题
        IUtil util = new Util();

        util.getPrintln1();

        util.getPrintln2();

    }

}

运行结果:
这里写图片描述


放回当前对象的好处:

    // 可以不断的点出很多函数
        Glide.with(PhotoPagerSlitherActivity.this)
        .load(output.toByteArray())
        .centerCrop()
        .crossFade()
        .placeholder(R.drawable.app_pic_file_bg)
        .into(zoomImageView);

/**
 * @author Liudeli
 */

// 测试程序
public class Main2 {

    public static void main(String[] args) {

        // IUtil是父类,他去new自己的子类,当然没任何问题
        IUtil util = new Util();

        util.getPrintln1();

        util.getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()
        .getPrintln2()

        // 省略....

        ;

    }

}

运行结果:
这里写图片描述

谢谢大家观看,还有很多很多不完善的点!!!


谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利CSDN博客, http://blog.csdn.net/u011967006

原文地址:https://www.cnblogs.com/android-deli/p/10322216.html