zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    其他权益工具
    2股缩为1股
    ubuntu查看网络流量
    修改iphone hosts文件
    Win10 家庭中文版HOST文件更改
    债权投资和其他债权投资的区别
    win10 Administrator没有管理员权限解决方案
    实际发放股票股利
    Could not get lock /var/lib/dpkg/lock
    R语言代写Gibbs抽样的贝叶斯简单线性回归仿真分析
  • 原文地址:https://www.cnblogs.com/android-deli/p/10322216.html
Copyright © 2011-2022 走看看