当我写一个有几个空洞的课时:
public class MyObj {
public void doSomething() { /* does something */ }
public void doSomethingElse() { /* does something else */ }
...
}
我可以使用以下代码:
MyObj myObj = new MyObj();
myObj.doSomething(); // does something
myObj.doSomethingElse(); // does something else
但如果我这样写这个类:
public class MyObj {
public MyObj doSomething() {
// do something;
return this;
}
public MyObj doSomethingElse() {
// do something else;
return this;
}
}
我可以使用以下代码完成相同的任务:
MyObj myObj = new MyObj();
MyObj.doSomething().doSomethingElse(); // does something and does something else.
我在JavaScript(jQuery)中看过第二种形式:
$("#myDialog").dialog().focus().mySuperLongNameHomeMadeBullshitFunction().remove();
所以我的问题是,在Java中,使用连接表单或标准的优缺点是什么? (我真的不会改变到第二个,只是好奇,因为我们都是)。
答案 0 :(得分:4)
Method chaining允许您在单个表达式中调用方法。
这在您不能使用多个语句的情况下非常有用 - 例如,this()和super()。
答案 1 :(得分:0)
使用方法链接可以允许使用流畅的API创建一些DSL并创建更清晰的代码。
它可以让你在完成同样的事情时更简洁,更有意义。