6.5.3  如何应用方法链式调用

在以前的章节中,应用如下方式在一行语句中按先后次序连续调用多个方法:
 
String futureValueStr = NumberFormat.getCurrencyInstance().format(2987655.
32276);
 
这种方法调用被称作方法链式调用。上面这行代码实际是如下两行语句的简化:
 
NumberFormat currency = NumberFormat.getCurrencyInstance();
String futureValueStr = currency.format(2987655.32276);
 
不难看出,适当使用方法链式调用可以简化代码的编写,提高编程效率。但并不是所有方法调用都适合于链式调用。方法链式调用的语法要求如下:
 
Identifier.method1().method2().[methodn_1()].methodn()
 
其中:
Identifier——可以是对象,或者类。
格式中除了最后一个方法methodn()不要求必须返回对象或对象引用外,其余方法,method1()methodn_1()都必须返回一个支持方法调用的对象或对象引用;否则将无法完成链式调用,而产生语法错误。
方法链式调用的原理是显而易见的。因为第一个方法调用返回的是该方法的对象引用,因而这个引用可以产生下一个方法调用;如此而已,生成一个调用链。因为最后一个方法调用意味着这个调用链的结束,所以没有必要必须有返回类型。如果方法链式调用应用在输出或者赋值语句中,它的最后一个方法通常返回某个运算结果。
注意  不适当使用方法链式调用将消弱程序的可读性。