java 链式写法_JAVA中实现链式操作(方法链)的简单例子
在使用jQuery时候,我们经常会看到或者使用到方法链,例如:
$("#p1").css("color","red").slideUp(2000).slideDown(2000);
这段代码的意思是选择器选择id为p1的html标签,颜色变红,之后slideup,再slidedown。
自然是可以将这几个方法分开写,但是不分开的话不仅有很好的易读性,代码量也会有减少,那么何乐而不为?
这种调用函数的方式在jQuery中称为“Chaining”,原理也很简单:能够chaining的方法调用后返回对象本身即可。
下面用java代码做个演示:
不使用chaining:
Persion.java:
public class Persion {
private int id;
private String name;
private String phoneNumber;
private String address;
public Persion() {
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public void setAddress(String address) {
this.address = address;
}
public void printId() {
System.out.println(this.id);
}
public void printName() {
System.out.println(this.name);
}
public void printPhoneNumber() {
System.out.println(this.phoneNumber);
}
public void printAddress() {
System.out.println(this.address);
}
}
Test.java:
public class Test {
public static void main(String[] args) {
Persion persion1 = new Persion();
persion1.setId(3);
persion1.setName("John");
persion1.setPhoneNumber("1111111");
persion1.setAddress("US");
persion1.printId();
persion1.printName();
persion1.printPhoneNumber();
persion1.printAddress();
}
}
使用chaining:
Persion.java:
public class Persion {
private int id;
private String name;
private String phoneNumber;
private String address;
public Persion() {
}
public Persion setId(int id) {
this.id = id;
return this;
}
public Persion setName(String name) {
this.name = name;
return this;
}
public Persion setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
return this;
}
public Persion setAddress(String address) {
this.address = address;
return this;
}
public Persion printId() {
System.out.println(this.id);
return this;
}
public Persion printName() {
System.out.println(this.name);
return this;
}
public Persion printPhoneNumber() {
System.out.println(this.phoneNumber);
return this;
}
public Persion printAddress() {
System.out.println(this.address);
return this;
}
}
Test.java:
public class Test {
public static void main(String[] args) {
Persion persion1 = new Persion();
persion1.setId(3).setName("John")
.setPhoneNumber("1111111").setAddress("US");
persion1.printId()
.printName()
.printPhoneNumber()
.printAddress();
}
}
好诡异的感觉~哈哈!
java 链式写法_JAVA中实现链式操作(方法链)的简单例子相关推荐
- java链式编程_Java 中的链式编程
前言 在写项目的时候,有一个实体类有好多个属性,new 出来之后需要不停的使用setXXX( )方法,效率低而且代码可读性差,查询了下发现可以实现实体类的链式编程. public class Use ...
- java for循环 写法_java中for循环的6种写法
packageForLoop;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;/*** java中for ...
- java 占位符写法_java中占位符
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. form ...
- java 本地剪切板_Java中剪切板的操作
Java提供两种类型的剪贴板:系统的和本地的. (1)本地剪贴板只在当前虚拟机中有效.Java允许多个本地剪贴板同时存在,可以方便地通过剪贴板的名称来进行存取访问. (2)系统剪贴板与同等操作系统直接 ...
- java调用android_Java及Android中常用链式调用写法简单示例
本文实例讲述了Java及Android中常用链式调用写法.分享给大家供大家参考,具体如下: 最近发现,目前大火的许多开源框架中,大多都使用了一种"(方法).(方法).(方法)"的形 ...
- java责任链模式_java中责任链模式详解和使用方法
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行为 ...
- java函数式编程入口_Java中的函数式编程
前言 JDK8引入的Lambda表达式和Stream为Java平台提供了函数式编程的支持,极大地提高了开发效率.本文结合网络资源和自身使用经验,介绍下Java中的函数式编程 Java中的函数式编程 出 ...
- java 基本类型 引用_java中 引用类型 和 基本类型 有何区别?
栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运行时数据区,类的(对象从中分配空间.这些对象通过new.newa ...
- java filter 不过滤器_Java中的Filter过滤器
Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件 ...
- java ref 应用类型_Java中的四种引用类型比较
1.引用的概念 引用这个概念是与JAVA虚拟机的垃圾回收有关的,不同的引用类型对应不同的垃圾回收策略或时机. 垃圾收集可能是大家感到难于理解的较难的概念之一,因为它并不能总是毫无遗漏地解决Java运行 ...
最新文章
- 如何启用SQL Server 2008的FILESTREAM特性
- Socket拉屎模型之二--实践篇
- leetcode算法题--地图中的最高点
- Asp.Net Core WebAPI使用Swagger时API隐藏与分组
- Android View 的scrollTo 和 scrollBy方法
- 《从Excel到R 数据分析进阶指南》一第1章 生成数据表1.1 导入数据表
- php 说说,PHP程序员:你过来,给我说说 $this,self,static 有什么区别?
- sql必知必会学习记录(五)
- vmware16安装mac虚拟机的unlocker
- Rtmp协议看一篇就够了
- 2路10核物理服务器能否虚拟40vcpu,计算vCPU数量 依据公式
- 仿宋小二在html中怎么设置,HTML简短设置字体
- LibVLC —— 常用函数解析
- 163邮箱如何注册呢?
- airflow问题系列2 —— task保持running假死状态
- 电脑太卡,重置电脑会解决问题吗
- Unity笔记之调节text的字间距
- 设置开机自动启动chrome浏览器
- AltiumDesigner如何绘制PCB封装
- symfonos: 1
热门文章
- pandas读取与存储操作详解
- SqlServer Convert函数 日期格式化
- ad系统安装配置指南(java-jndi-ldap),AD系统安装配置指南(JAVA-JNDI-LDAP-Exchange)
- win10启动虚拟机电脑蓝屏----VMware
- 考研 英语一 大作文-图画作文 (二)---第二段写作攻略
- 最长公共子序列长度以及打印(动态规划入门)
- python mro算法_Python MRO C3算法实现
- mysql uroot p f_mysql数据库安装
- react根据中文获取拼音_学前家长建议收藏:你要的「趣味拼音课」来了
- 计算机云计算中心建设项目,某大学计算机云计算云数据中心建设方案.docx