Java Lombok Project只是一个很棒的东西。它提供了摆脱大量生成的getter / setter并使用简单,易于理解的注释的可能性。
但是对于我的自动化项目,我应该返回一些元素的接口。 lombok是否可以返回对象的接口?
例如,我有:
private ButtonElement button = new ButtonElement(....);
public IElement getButton() {
return button;
}
并希望有类似的内容:
@Getter // with with IElement return type?
private ButtonElement button = new ButtonElement(....);
答案 0 :(得分:1)
是的,但它很笨拙:
@Getter
private IElement button = new ButtonElement(....);
但这当然会让访问ButtonElement
的某些方法变得更加困难。所以你可能想要使用:
private _button = new ButtonElement(....);
@Getter
private IElement button = _button;
即。你需要两个字段,一个带接口,另一个带真实类型。
或
@Getter
private IElement button = new ButtonElement(....);
private ButtonElement button() { return (ButtonElement) button; }
即。你现在有一个内部的getter,它会转换并返回真实的类型。
请注意,Java允许您定义扩展类型的方法。所以如果你有一个interface
说:
IElement getButton();
您可以使用
实现此目的public ButtonElement getButton() {...}
这不仅会起作用,而且如果Java知道你正在调用哪个getButton()
,它会很高兴地给你一个ButtonElement
。
答案 1 :(得分:0)
如果您将字段类型定义为界面,它当然会返回界面,否则,我认为没有办法。
我只想将您的代码更改为
@Getter
private IElement button = new ButtonElement(....);