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

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

Java返回当前对象的好处的更多相关文章

  1. Java学习——面对对象的思想入门

          本文是看过<head first Java>之后的一点感悟,写点东西帮忙以后回忆,Java目前在我的工作中用到还不多,而我又对面对对象的编程非常的感兴趣.曾经在MFC平台上写过 ...

  2. 【JAVA】 02-Java对象细节

    链接: 笔记目录:毕向东Java基础视频教程-笔记 GitHub库:JavaBXD33 目录: <> <> 内容待整理: 面向过程: 代表语言-c:即通过函数体现,并不断调用函 ...

  3. 类型转换及返回json对象的问题

    @ResponseBody @RequestMapping(value="/user/getUserId.do")//method=RequestMethod.POST publi ...

  4. Java提高篇——对象克隆(复制)

    假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short, ...

  5. java 创建string对象机制 字符串缓冲池 字符串拼接机制

    对于创建String对象的机制,在这一过程中涉及的东西还是值得探究一番的. 首先看通过new String对象和直接赋值的方式有什么区别,看如下代码: public static void main( ...

  6. Java的常用对象①②

    Java的常用对象① Java的常用对象有很多,这里只对lang包中常用的Object,Date(Calendar,DateFormat,Math),System,Runtime进行介绍.㈠Objec ...

  7. 奇妙的动态代理:EF中返回的对象为什么序列化失败

    今天有如鹏的学生遇到一个问题:把一个对象保存到Session中(进程外Session)后,Web服务器重启,当从Session读取这个对象的时候报错,提示是一个“T_Users”后面跟着一大串数字的类 ...

  8. java中直接打印对象

    java中直接打印对象,会调用对象.toString()方法.如果没有重写toString()方法会输出"类名+@+hasCode"值,hasCode是一个十六进制数 //没有重写 ...

  9. 对Java“一切皆对象”的理念的理解

    在从HelloWorld到面向对象中,我们将int, float, double, boolean等称为基本类型(primitive type),也就是特殊的类.我们可以将一个整数理解称为一个int类 ...

随机推荐

  1. 使用python识别验证码

    公司的登录注册等操作有验证码,测试环境可以让开发屏蔽掉验证码,但是如果到线上的话就要想办法识别验证码或必过验证码了. 识别验证码主要分为三部分,一.对验证码进行二值化.二.将二值化后的图片分割.三.进 ...

  2. Access to the path 'C:\inetpub\wwwroot\mysite\images\savehere' is denied.

    访问路径被拒绝 我解决了这个设置: IIS>应用程序池> [您的站点]>高级设置...>标识>内置帐户> LocalSystem

  3. 亲, 我们来再重申一遍"=="和"equals的区别

    今天经历的一个事情太丢脸了, 一个学弟向我请教问题, 是这样的: 一个字符串里面含有空格, 不允许使用.trim()和replace方法, 只用if和for将空格去掉, 题目很简单, 一开始我是这样写 ...

  4. nyoj743-复杂度 【排列组合】

    http://acm.nyist.net/JudgeOnline/problem.php?pid=743 复杂度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 fo ...

  5. STL容器的常用用法

    STL: 1.vector: vector<int> v;vector<int> v(10);//定义大小为10的int型向量容器.vector<int> v(10 ...

  6. oracle 使用正则表达式获取字符串中包含的数字

    select REGEXP_REPLACE('字符串中包含的数字123,提取后就是123', '[^0-9]', '') from dual;

  7. Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this scrip

    在运行phpize时出现的错误 > /data/php/bin/phpize Configuring for: PHP Api Version: 20131106 Zend Module Api ...

  8. 【转】VS2012 中文版转英文版 英文版转中文版 界面语言切换

    [1]下载VS2012的语言包,各种语言包都有,下载对应的即可. 微软官网衔接地址:vs2012 语言包  http://www.microsoft.com/zh-CN/download/detail ...

  9. 原生JS获取url汇总

    在WEB开发中,许多开发者都比较喜欢使用javascript来获取当前url网址,本文就此为大家总结一下比较常用获取URL的javascript实现代码 URL即统一资源定位符 (Uniform Re ...

  10. WCF生成客户端代理对象的两种方法的解释

    最近在封装WCF,有一些很好的实践就记录下来,大家可以放心使用,所有代码都已经调试过.如果有高手可以大家探讨一下. 在WCF中有两种不同的方法可以用于创建客户端服务对象,他们分别为: 1. 代理构造法 ...