• 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

  • 相关阅读:
    wxpython demo
    python xpath 基本用法
    lxml.html删除节点树和tag对
    网络策略服务器
    安装 Windows Server 2012 Active Directory 只读域控制器 (RODC)(级别 200)
    云容器和安全性仍然是困扰IT人士的头号问题
    DirectAccess
    使用组策略首选项进行扩展控制
    虚拟架构就绪 | 谈谈Windows Server 2012 R2迁移这件小事
    Set-DnsServerGlobalQueryBlockList
  • 原文地址:https://www.cnblogs.com/android-deli/p/10322216.html
Copyright © 2020-2023  润新知