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运行 ...
最新文章
- PAT(甲级)2021年春季考试 7-3 Structure of Max-Heap
- mysql pstop_ps-top 用于MySQL的数据库top工具
- 转: 常见加密算法分,用途,原理以及比较
- dedecms模板中首页实现分页的方法
- 零基础小白一个,我是如何入门商业数据分析师的
- java list 排序_Java中List的排序
- 对MySQL 进行深入学习是非常必要的
- 技术人写作和写代码一样重要
- 手机远程linux桌面,centos8安装xrdp远程桌面,Android手机连接linux桌面
- oracle批量更新数据从另一表_全市场期货数据的批量下载和更新
- java easyui样式_【Java框架型项目从入门到装逼】第八节 - 用EasyUI绘制主界面
- docker 中文文档_Kubernetes将弃用Docker,不必恐慌
- 人脸系列:人脸检测、人脸关键点定位、人脸优选、人脸对齐、人脸特征提取、人脸跟踪、人脸活体检测
- 将汉字转换成笔画代码_0基础学习五笔输入法之汉字的拆分
- frpc在linux下开机启动,frp 设置开机自启
- cisco、华为交换机常用配置对照表
- 【愚公系列】2022年01月 Django商城项目16-用户中心-地址管理之省市三联动功能实现
- java计算机毕业设计企业物资管理系统源代码+数据库+系统+lw文档
- 物联网发展的尴尬境况:理想与现实仍有差距
- 运行django项目报错Couldn‘t import Django
热门文章
- python logging模块使用详解
- 你应该知道的RPC原理
- 修改保留注释_Kraken2:宏基因组快速物种注释神器
- python怎么比较两个列表 所有成员,Python从特定角色获取所有成员列表
- 前端学java还是python_零基础小白 选择学习 java、php、前端 还是 python?
- flask-mail异步发送邮件_Spring Boot邮件发送功能的实现与原理介绍
- win10 android设备,巧用《你的手机》链接Win10电脑和Android手机/iPhone
- vue延迟渲染组件_做一个可复用的 echarts-vue 组件(延迟动画加载)
- java eclipse中修改Web项目的URL访问路径
- tp3.2 判断请求类型