Java返回当前对象的好处

来源:互联网 发布:余弦相似度算法 java 编辑:程序博客网 时间:2024/05/17 04:21

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

    // 可以不断的点出很多函数        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

1 0