如何使用龙目岛生成标准访问器和流利访问器?

2022-09-01 20:51:12

我试过了这个。

@lombok.Getter
@lombok.Setter
@lombok.Accessors(chain = true, fluent = true)
private String prop;

并且优先,并且不生成。@AccessorgetPropsetProp

我怎样才能让它生成这个?

public String getProp() {
    return prop;
}
public String prop() {
    //return prop;
    return getProp(); // wow factor
}
public void setProp(String prop) {
    this.prop = prop;
}
public Some prop(String prop) {
    //this.prop = prop;
    setProp(prop); // wow factor, again
    return this;
}

答案 1

不幸的是,这是不可能的。您需要实现自己的 getter 和 setter,并添加@Getter @Setter和 @Accessors(fluent = true) 注释来实现此目的。

@Getter
@Setter
@Accessors(fluent = true)
public class SampleClass {
    private int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}

结果,您将拥有如下类:

public class SampleClass {
    private int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int id(){
        return id;
    }

    public SampleClass id(int id){
        this.id=id;
        return this;
    }
}

答案 2

恐怕你不能。

文档(强调是我的):

该注释用于配置龙目岛如何生成和查找 getter 和 setter。@Accessors

因此不会生成任何内容,它只是一种配置和.@Accessors@Getter@Setter


如果你真的想要流利常规的 getter/setter,你可以添加(手动)常规的 getter/setter,并让它们委托给流利的 getter/setter。


推荐