之前在这里回答了一些问题以及我最近一直在做的一些工作时,我一直想知道为什么 Java 不支持其内置类的方法链接。
例如,如果我要创建一个Car
类,我可以通过 reutrning而this
不是 void 使其可链接,如下所示:
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);
我很想听听这个决定背后的原因,如果我不得不猜测这将是与此相关的开销,因此应该只在需要时使用。