如何使用lombok生成标准访问器和流畅的访问器?

Jin*_*won 8 java accessor lombok

我试过这个.

@lombok.Getter
@lombok.Setter
@lombok.Accessors(chain = true, fluent = true)
private String prop;
Run Code Online (Sandbox Code Playgroud)

@Accessor采取了优先级和getPropsetProp没有产生.

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

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;
}
Run Code Online (Sandbox Code Playgroud)

Are*_*iak 11

不幸的是,这是不可能 您需要实现自己的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;
    }
}
Run Code Online (Sandbox Code Playgroud)

结果你将有类如下:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 8

我怕你不能.

来自doc(重点是我的):

@Accessors注释用于配置龙目岛是如何产生并寻找getter和setter.

所以@Accessors不生成任何东西,它只是一种配置@Getter和方式@Setter.


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