在回答这里的几个问题和一些工作,我一直在做最近我一直在想,为什么Java不支持方法链接其内置类。
如果我要创建一个Car类,例如,我可以通过reutrning这个而不是void如下:
public class Car {
private String make;
public Car setMake(String make) {
this.make = make;
return this;
}
}
有什么特别的原因为什么内置的库不倾向于这样做的事情?方法链是否有缺点?
我可能已经忽略了一些东西,这将解释缺乏方法链,但任何setter方法返回void默认情况下应该返回一个引用(至少在我的眼睛它应该)。这将使像下面这样的情况更清洁。
container.add((new JLabel("label text")).setMaximumSize(new Dimension(100,200)));
而不是更长的缠绕:注:它不会阻止你编码这种方式,如果你想要的。
JLabel label = new JLabel("label text");
label.setMaximumSize(new Dimension(100,200));
container.add(label);
我将非常感兴趣听到这个决定背后的原因,如果我不得不猜测,这是有一个与此相关的开销,所以应该只在需要时使用。