Java 中的方法链接 [已关闭]
2022-09-01 03:06:49
虽然之前在这里回答了一些问题,并且我最近一直在做一些工作,但我一直在想为什么Java不支持在其内置类上进行方法链。
例如,如果我要创建一个类,我可以通过重新utring而不是void来使其可链接,如下所示:Car
this
public class Car {
private String make;
public Car setMake(String make) {
this.make = make;
return this;
}
}
有什么特别的原因,为什么内置的库不倾向于以这种方式做事?方法链式有缺点吗?
我可能忽略了一些东西,这可以解释缺乏方法链,但是任何默认情况下返回void的setter方法都应该返回对此的引用(至少在我看来它应该)。这将使以下情况更加干净。
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);
我非常有兴趣听到这个决定背后的原因,如果我必须猜测,那就是有与此相关的开销,因此应该只在需要时使用。