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类 ...
随机推荐
- 结对项目3-bug的三种状态
这周和小伙伴结对构造程序,来深刻理解软件测试中,bug发现的三种状态. 1:不能触发Fault 2:触发Fault,但是不能触发Error 3:触发Error,但是不能产生Failure 我们完成的代 ...
- java.lang.IllegalArgumentException: Service not registered
java.lang.IllegalArgumentException: Service not registered 首先检查一下,Service是否在AndroidManifest文件中注册.格式如 ...
- A计划(BFS)
A计划 http://acm.hdu.edu.cn/showproblem.php?pid=2102 Time Limit: 3000/1000 MS (Java/Others) Memory ...
- C#中货币类型和数值类型、字符串类型的转化
1.定义textbox的数据 private void Form1_Load(object sender, EventArgs e) { this.textBox1.Text = String.For ...
- UVa 11988 Broken Keyboard (a.k.a. Beiju Text)(链表)
You're typing a long text with a broken keyboard. Well it's not so badly broken. The only problem wi ...
- 【校招面试 之 C/C++】第6题 C++深拷贝与浅拷贝
1.两个的区别(1)在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制.当数据成员中没有指针时,浅拷贝是可行的: 但当数据成员中有指针时,如果采用简单的浅 ...
- [leetcode]333. Largest BST Subtree最大二叉搜索树子树
Given a binary tree, find the largest subtree which is a Binary Search Tree (BST), where largest mea ...
- 02 请求库之 selenium模块
selenium模块 一 介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动 ...
- AJAX 请求中多出了一次 OPTIONS 请求 导致 Laravel 中间件无法对 Header 传入的 Token 无法获取
背景知识: 我们会发现,在很多post,put,delete等请求之前,会有一次options请求.本文主要是来讨论一下这是什么原因引起的. 根本原因就是,W3C规范这样要求了!在跨域请求中,分为简单 ...
- [开源,学习,分享]UWP第三方简书客户端分享
简介 Windows10正式版发布到现在,我利用零零碎碎的一些时间对UWP进行一些学习,也基于这门技术开发了一个第三方的简书App. 基本界面 优酷视频: http://v.youku.com/v_s ...