链式编程并没有想像中的那么难,其实很好理解。
举个栗子:
Student s = new Student();
String name = s.getName();
name = name.replace(" ", "");
这三行代码的意思很简单,就是把Student类的对象s的name属性取出来,然后把name里面的空格去掉。
如果用链式编程,就是这样写:
Student s = new Student();
String name = s.getName().replace(" ", "");
问题就出在:s.getName()之后为什么还可以继续打点调方法呢?
链式编程的前提是,方法必须返回一个对象,然后这个对象还可以继续调用方法,依此类推。
方法s.getName()返回值是一个String对象,而String对象又可以继续调用String类中的方法,所以可以继续调用replace()方法,而replace()方法也会返回一个String对象,所以还可以继续链式调用,即继续调用String类的方法。如果继续调用的方法是split()方法,那么该方法返回的是一个数组对象,就只能调用数组的功能了,不能再调用String的功能。
链式编程无非是简化了代码而已。如果你真的不会,就一步一步的写,一样的。 |