一:链式编程
可以简化编程。代码简洁。
定义:
链式编程:顾名思义,链子嘛。它是一种编程范式,它允许将多个函数或操作连接在一起,形成一个链条,以执行复杂的操作。
优点:
编程性强、代码简洁 、可读性强。
使用条件:
方法返回当前对象,即返回this;或方法支持链式调用,即返回调用该方法的对象。
案例1:
import lombok.Data;
//链式编程是一种编程风格,其中调用对象的方法会返回对象本身,从而使得可以在同一行代码中连续调用多个方法。
@Data
public class School {
private Integer id;
private String name;
private String age;
//返回School对象,方便链式调用
public School setId(Integer id) {
this.id = id;
return this;
}
//返回School对象,方便链式调用
public School setName(String name) {
this.name = name;
return this;
}
//d返回School对象,方便链式调用
public School setAge(String age) {
this.age = age;
return this;
}
}
输出结果:
案例2:
其中String中也有链式编程思想。可以进入String源码中查看。
例如可以将某对象toString()转化为String后,或将String对象valueOf()赋值后,进行concat()拼接、replace()替换、substring()截取。大多数都能组装起来,使之符合链式编程。
案例3:
StringBuffer和StringBuilder链式示例
public static void main(String[] args) {
String stringBuffer = new StringBuffer().append("hello").append("world").toString();
System.out.println(stringBuffer);
String stringBuilder = new StringBuilder().append("hello").append("world").toString();
System.out.println(stringBuilder);
}
案例4:
@Accessors注解开启链式编程
在实体类中使用这个注解,是lombok中的。使用之前必须引入lombok依赖。
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)//开启链式调用
public class Student {
private Integer id;
private String name;
private String age;
}
测试类:
public static void main(String[] args) {
Student student = new Student().setName("张三").setAge("21").setId(1234567890);
System.out.println(student.toString());
}
可以看出,当使用注解时,不用自己再设计具体的链式实现,注解会开启链式操作。这个注解常用在Spring中的实体类上。
同时,使用@Accessors(fluent = true)时,省略给对象赋值和取值时候得set、get前缀,可以直接用对象点出来元素,不用set。