上一篇写过关于Java链式调用的博文,但是感觉贴出的代码片段并不能言简意赅的表达Java链式调用的优点,现在把这篇博文作为上篇博文的一个补充吧。
先说一下这么写的好处在于一方面可以尽可能的少去类型转换的判定,而且大大增强了代码的阅读性,也就是更符合人类阅读的习惯,同时也减少了代码量。
下面通过一个小例子来演示一下链式编程:
public class LinkMan {
private String name;
private String title;
private Integer age;
//链式接口调用时,返回值类型和link该对象类型保持一致
//返回值类型为LinkMan
public LinkMan setName(String name){
this.name = name;
return this;
}
public LinkMan setTitle(String title){
this.title = title;
return this;
}
public LinkMan setAge(Integer age){
this.age = age;
return this;
}
public String getName(){
return name;
}
public String getTitle(){
return name;
}
public String getAge(){
return name;
}
@Override
public String toString(){
return "name: " + name + " title: " + title + " age: " + age;
}
}
调用代码片段:
LinkMan linkMan = new LinkMan().setName("NIKE").setTitle("测试").setAge(26);
System.out.println(linkMan.toString());
System.out.println(linkMan.getName());
输出信息:
name: NIKE title: 测试 age: 26
NIKE
总结:链式调用有个缺点,一般情况下,JavaBean类中是写getter/setter的,可以使用ide快速生成,而链式调用需要手动写setter部分的代码(可以先用ide生成,然后手动改相关的setter部分代码,通过这种方式来减少工作量),不过只要在Java
Bean写完一次,在别的地方调用就方便了很多,有得有失,代码之道啊:)