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
Java返回当前对象的好处的更多相关文章
- Java学习——面对对象的思想入门
本文是看过<head first Java>之后的一点感悟,写点东西帮忙以后回忆,Java目前在我的工作中用到还不多,而我又对面对对象的编程非常的感兴趣.曾经在MFC平台上写过 ...
- 【JAVA】 02-Java对象细节
链接: 笔记目录:毕向东Java基础视频教程-笔记 GitHub库:JavaBXD33 目录: <> <> 内容待整理: 面向过程: 代表语言-c:即通过函数体现,并不断调用函 ...
- 类型转换及返回json对象的问题
@ResponseBody @RequestMapping(value="/user/getUserId.do")//method=RequestMethod.POST publi ...
- Java提高篇——对象克隆(复制)
假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short, ...
- java 创建string对象机制 字符串缓冲池 字符串拼接机制
对于创建String对象的机制,在这一过程中涉及的东西还是值得探究一番的. 首先看通过new String对象和直接赋值的方式有什么区别,看如下代码: public static void main( ...
- Java的常用对象①②
Java的常用对象① Java的常用对象有很多,这里只对lang包中常用的Object,Date(Calendar,DateFormat,Math),System,Runtime进行介绍.㈠Objec ...
- 奇妙的动态代理:EF中返回的对象为什么序列化失败
今天有如鹏的学生遇到一个问题:把一个对象保存到Session中(进程外Session)后,Web服务器重启,当从Session读取这个对象的时候报错,提示是一个“T_Users”后面跟着一大串数字的类 ...
- java中直接打印对象
java中直接打印对象,会调用对象.toString()方法.如果没有重写toString()方法会输出"类名+@+hasCode"值,hasCode是一个十六进制数 //没有重写 ...
- 对Java“一切皆对象”的理念的理解
在从HelloWorld到面向对象中,我们将int, float, double, boolean等称为基本类型(primitive type),也就是特殊的类.我们可以将一个整数理解称为一个int类 ...
随机推荐
- bed文件格式解读
1)BED文件 BED 文件(Browser Extensible Data)格式是ucsc 的genome browser的一个格式 ,提供了一种灵活的方式来定义的数据行,以用来描述注释信息.BED ...
- for循环语句个人小结
重新看了一下光盘上的用for循环写一个菱形的答案,发现了其实有几点是可以灵活运用的: 1,当定义行数的时候,也可以用相等的间断的数字隔开,比如 for(int a = 5; a >= 1; a- ...
- selinux介绍及关闭selinux指南
selinux简介 SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的 实现,是 Linux历史上最杰出的新安全子系统.NSA是在Linux ...
- C/C++ 宏
0. #define MALLOC(n, type) \ ( (type *) malloc((n)* sizeof(type))) 1. 宏可以像函数一样被定义,例如: #define min ...
- inputStream、File、Byte、String等等之间的相互转换
一:inputStream转换 1.inputStream转为byte //方法一 org.apache.commons.io.IOUtils包下的实现(建议) IOUtils.toByteArray ...
- Android Studio和SDK下载、安装和环境变量配置
win10下Android Studio和SDK下载.安装和环境变量配置 - ...
- python笔记之循环控制
学习python的第一个例子,while循环中嵌套if-else语句,一个猜年龄的例子 #案例1,实现循环猜年龄 # my_age = 12 # while True: # guess_age1 = ...
- ubuntu 操作系统的目录结构
Ubuntu 系统的目录众多,并且 Ubuntu 系统是不分 C 盘.D 盘等的,但是所有的目录都是在/目录下面的. 一./:根目录,是所有目录的绝对路径的起始点,Ubuntu 中的所有文件和目录都在 ...
- Halcon的编程语法与数据处理——第8讲
1.跟其他语言不完全一致的表达符号 赋值符号 := 引号 ' ' (一律是单引号) 求商求余 / % (一个整数除以另一个数,如何使商是实型的?即浮点型) 逻辑运算 and or ...
- .net core web api swagger 配置笔记
参考网址: --配置步骤见如下链接https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/web-api-help-pages-using-swa ...