前言

现在很多开源库或者代码都会使用链式调用。因为链式调用在很多时候,都可以使我们的代码更加简洁易懂。以下Student类有多数个属性,让我们看看非链式调用和链式调用有何区别。

非链式调用

Main类:

/**

* Created by chenxuxu on 17-1-10.

*/

public class Main {

public static void main(String[] args) {

Student stu = new Student();

stu.setAge(22);

stu.setName("chenxuxu");

stu.setGrade("13级");

stu.setNo("123456789");

stu.setMajor("软件工程");

}

}

Student类:

/**

* 学生类

*

* Created by chenxuxu on 17-1-10.

*/

public class Student {

/**

* 姓名

*/

private String name;

/**

* 年龄

*/

private int age;

/**

* 学号

*/

private String no;

/**

* 年级

*/

private String grade;

/**

* 专业

*/

private String major;

//...此处省略getter&setter

}

链式调用

Main类:

/**

* Created by chenxuxu on 17-1-10.

*/

public class Main {

public static void main(String[] args) {

Student.builder()

.stuName("chenxuxu")

.stuAge(22)

.stuGrade("13级")

.stuMajor("软件工程")

.stuNo("123456789");

}

}

Student类:

/**

* 学生类

*

* Created by chenxuxu on 17-1-10.

*/

public class Student {

/**

* 不能通过new初始化

*/

private Student(){}

public static Builder builder(){

return new Builder();

}

static class Builder{

/**

* 姓名

*/

private String name;

/**

* 年龄

*/

private int age;

/**

* 学号

*/

private String no;

/**

* 年级

*/

private String grade;

/**

* 专业

*/

private String major;

public Builder stuName(String name){

this.name = name;

return this;

}

public Builder stuAge(int age){

this.age = age;

return this;

}

public Builder stuNo(String no){

this.no = no;

return this;

}

public Builder stuGrade(String grade){

this.grade = grade;

return this;

}

public Builder stuMajor(String major){

this.major = major;

return this;

}

}

}

结论

通过链式调用后,代码看起来简洁易懂。

java链式调用空指针_java 链式调用相关推荐

  1. java获取get请求返回_Java中处理调用第三方接口(post/get),该如何处理,返回的数据如何处理...

    条件:1.请求URL:http://ip:port/yypt/*.jsonRequest 2.接口采用http post协议.Content-Type为application/json 调用流程: 第 ...

  2. java 对第三方的异常_Java第三方API调用打开文件方法时抛出异常

    想用Java写一个音乐播放器,使用了Javazoom里的第三方API,调用打开文件的方法open(File file)时,抛出了IOException:Resetting to invalid mar ...

  3. java批量处理数据库语句_Java项目中调用bat批处理进行多用户数据库备份

    Java项目中调用bat批处理配合使用BCP进行多用户数据的备份 一.项目需求 最近项目中需要对数据库(Sql Server系列数据库)进行备份.项目中的需求不是简单的整个数据库的备份,而是根据用户来 ...

  4. 编写Java程序 堆栈的接口_java - 错误:调用实现接口的通用方法时,java.lang.AbstractMethodError - 堆栈内存溢出...

    我正在尝试使用javassist以编程方式创建和编译实现接口的类(在运行时). 每当我调用该动态类的实例时,都会收到以下错误消息: java.lang.AbstractMethodError: Foo ...

  5. java如何中断父类方法_java – 如何测试调用父类的受保护(不需要)方法的方法?...

    我陷入了一个非常奇怪的情况. 我有一些我需要测试的特定代码. 这里是: public class A { /* * The real method of real class is so big th ...

  6. promise链式调用_这一次,彻底弄懂 Promise

    Promise 必须为以下三种状态之一:等待态(Pending).执行态(Fulfilled)和拒绝态(Rejected).一旦Promise 被 resolve 或 reject,不能再迁移至其他任 ...

  7. Vue2 中 ?. 可选链式调用操作符出现的问题

    一.什么是可选链式调用操作符 可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效.?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(n ...

  8. java中链式调用_Java及Android中常用链式调用写法简单示例

    本文实例讲述了Java及Android中常用链式调用写法.分享给大家供大家参考,具体如下: 最近发现,目前大火的许多开源框架中,大多都使用了一种"(方法).(方法).(方法)"的形 ...

  9. Java8链式调用_java链式调用(转载http://www.cnblogs.com/quiet-snowy-day/p/6091233.html)

    记录最近在项目设计中遇到的一个小问题. 前提:有这样两个POJO类,它们都可以通过链式调用的方式来设置其属性值,其中一个类继承了另一个类. 问题:通过链式调用,子类对象访问父类方法后,如何使返回对象仍 ...

最新文章

  1. 开发日记-20190815 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 23
  2. 数据结构-单向循环链表、双向循环链表、仿真链表
  3. python修改第三方库重写_Python安装第三方库,切换镜像源
  4. c语言宏高级用法,C语言宏高级用法 [总结]
  5. Java使用TCP实现群聊 聊天室(多线程和tcp的使用)
  6. 眨眼检测计算机不精确,基于OpenCV和Python错误的眨眼检测
  7. 云服务器惠普版_工作进度通报,笔记本开箱目录20200531版
  8. python长沙_python 长沙
  9. 简单方法去除WPS广告
  10. Windows7安装IIS服务器
  11. kindle阅读订阅的google reader时,词典不能工作的修正
  12. 多维向量空间中点到线的距离公式
  13. 计算机之父的童年故事教案,《计算机之父的童年故事》教学设计
  14. 阿兹尔海默症生物标志物(姑且叫标志物)的一些总结
  15. 关闭Windows Defender Service工具
  16. GlassFish漏洞总结复现
  17. Windows无法访问指定设备路径或文件,您可能没有合适的权限访问这个项目
  18. R16之Access to Unlicensed Spectrum(3)
  19. CodeForces 1015 C Songs Compression
  20. kettle 在Linux下执行kjb

热门文章

  1. ASP.NET站点导航(五)
  2. 中文整合包_MIMOSA2: 基于微生物组和代谢组数据的整合分析
  3. RabbitMQ六种队列模式-发布订阅模式
  4. c# mysql executenonquery_C#中ExecuteNonQuery()返回值注意点分析
  5. React-Native 填坑之ListView(item更新)
  6. 利用spring注解创建bean
  7. 如何在linux里面运行ncl,NCL基础讲解(二)——NCL安装与运行
  8. 使用mybatis操作AS400数据库
  9. intern()方法的使用
  10. 批量找注入 python3+sqlmap结合