2016-04-12 8 views
0

Я пробовал это.Как я могу сгенерировать как стандартные аксессуры, так и плавные аксессоры с ломбоком?

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

И @Accessor взяли верх и getProp и setProp не генерируются.

Как я могу заставить его сгенерировать это?

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; 
} 

ответ

4

К сожалению, это невозможно. Вам необходимо реализовать собственные геттеры и сеттеры, а также добавить @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 void id(int id){ 
     this.id=id; 
    } 
} 
4

Боюсь, что вы не можете.

Из doc (курсив мой):

@Accessors аннотаций используется для настройки как Ломбок генерирует и ищет добытчиками и сеттеров.

Так @Accessors ничего не производит, это просто способ настроить @Getter и @Setter.


Если вы действительно хотите свободно и регулярные геттер/сеттер, вы можете добавить (вручную) регулярные один и заставить их делегировать беглых из них.