Objectname.methodone()
.methodtwo()
.methodthree()
.methodfour();
这些陈述是否与
相同Objectname.methodone();
Objectname.methodtwo();
Objectname.methodthree();
Objectname.methodfour();
谢谢,
答案 0 :(得分:2)
取决于methodone
,methodtwo
,methodthree
和methodfour
的返回类型。发生了什么事情,您在methodone
上呼叫Objectname
,在methodtwo
的返回类型上呼叫methodone
,依此类推。
如果methodone
到methodfour
都返回this
,那么是的,它会是相同的。
这称为method chaining。
答案 1 :(得分:1)
可能,如果每个方法的实现都以return this;
结尾,那么调用可以像这样链接。但是每个都可以返回对不同对象的引用,然后调用“next”方法。
答案 2 :(得分:0)
不,它不像它那样
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();
}
}
答案 3 :(得分:0)
不一定,在methodtwo
的返回值上调用methodone
,在methodthree
的返回值上调用methodtwo
,依此类推。它们(必然)不会被称为同一个对象。
等效于:
MethodOneReturnType x = object.methodone();
MethodTwoReturnType y = x.methodtwo();
MethodThreeReturnType z = y.methodthree();
答案 4 :(得分:0)
这取决于那些方法返回的内容。在返回methodone时调用methodtwo。如果methodone返回Objectname,那么它们是相同的。
答案 5 :(得分:0)
它们不太可能相同。想想披萨制造商。
new PizzaBuilder().withDough("dough").withSauce("sauce").withTopping("topping").build();
这会构建完整的披萨。而如果你单独调用with方法,它将只构建一个部分披萨。