Objectname.methodone()
.methodtwo()
.methodthree()
.methodfour();
發生難道這些上述聲明一樣我不知道在這個Java代碼塊
Objectname.methodone();
Objectname.methodtwo();
Objectname.methodthree();
Objectname.methodfour();
感謝,
Objectname.methodone()
.methodtwo()
.methodthree()
.methodfour();
發生難道這些上述聲明一樣我不知道在這個Java代碼塊
Objectname.methodone();
Objectname.methodtwo();
Objectname.methodthree();
Objectname.methodfour();
感謝,
沒有它不喜歡它是因爲
Objectname.methodone().methodtwo().methodthree().methodfour();
類似於
result = method1().method2(). ........ method n()
其稱爲方法鏈式
例
class Person
{
private final String name;
private int age;
public Person setName(final String name) {
this.name = name;
return this;
}
public Person setAge(final int AGE) {
this.age = AGE;
return this;
}
public void introduce() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
// Usage:
public static void main(String[] args) {
Person person = new Person();
// Output of this sequence will be: Hello, my name is Peter and I am 21 years old.
person.setName("Peter").setAge(21).introduce();
}
}
不一定,methodtwo
上調用的的返回值在methodtwo
等的返回值上調用0和methodthree
。他們不(必然)在同一個對象上被調用。
相對應的是:
MethodOneReturnType x = object.methodone();
MethodTwoReturnType y = x.methodtwo();
MethodThreeReturnType z = y.methodthree();
這取決於什麼這些方法返回。方法2在方法返回時被調用。如果methodone返回Objectname,那麼它們是相同的。
取決於methodone
,methodtwo
,methodthree
和methodfour
的退貨類型。發生了什麼事是您撥打methodone
的Objectname
,methodtwo
上返回類型methodone
等等。
如果methodone
到methodfour
都返回this
,那麼是的,它會是一樣的。
這被稱爲method chaining。
也許,如果每個方法的實現以return this;
結尾,以便可以像這樣鏈接調用。但有可能每個對象返回一個對象的引用,然後在其上調用「next」方法。
它們很可能不會相同。想想比薩建造者。
new PizzaBuilder().withDough("dough").withSauce("sauce").withTopping("topping").build();
這建立了完整的披薩。而如果你單獨調用with方法,它將只構建一個部分披薩。
你可能會覺得這很有趣:http://stackoverflow.com/questions/2872222/how-to-do-method-chaining-in-java-o-m1-m2-m3-m4 – Mudassir