2016-05-21 6 views
2

Ich fange an, mit Android-Bindung zu spielen. Die Standard (1-Weg) Bindung ist bis zu dem Punkt gut genug für die Leute, mit denen ich rumgehangen bin.Wie kann Android mit Lombok Accessoren verbunden werden?

Ich finde jedoch, dass ich Lombok Accessoren ohne einen Could not find accessor Fehler nicht verwenden kann. Hast du einen Weg dazu gefunden, schüchtern, Getter und Setter wie eine Art Lombok-ignoranter Höhlenbock manuell zu schreiben?

@Bindable 
@Getter @Setter 
private String stringField; 

//Must uncomment hand-coded accessors to compile! 
//public String getStringField() { return stringField;} 
//public void setStringField(String s) { stringField = s;} 

Für die Nachwelt Code meiner ursprünglichen Probe eine boolean wurde mit, die das Problem trübt ein wenig:

@Bindable 
    @Getter @Setter private boolean showpassword = false; 

/* This only compiles if the handcoded accessors are uncommented. 

    public boolean getShowpassword() { 
     return showpassword; 
    } 
    public void setShowpassword(boolean b) { 
     showpassword = b; 
    } 
*/ 

Antwort

1

Für boolean, die erzeugte "Getter" ist standardmäßig isShowpassword nach dem beanspec. Der generierte "Setter" ist setShowPassword. Die Fehlermeldung weist darauf hin, dass es sich um den "Getter" handelt, der nicht gefunden werden kann.

Sie können einen Konfigurationsschlüssel verwenden, um dieses Verhalten zu ändern. Nach den documentation, wenn Sie die folgenden in lombok.config Ihr Programm enthalten sollte, ohne die Hand geschrieben Getter und Setter arbeiten:

lombok.getter.noIsPrefix = true 
+0

Ich habe ein schlechtes Beispiel verwendet; Es ist der gleiche Fehler, wenn er an einen Lombok-String gebunden ist. Aber ja, der selbe Fehler wenn noIsPrefix gesetzt ist. Und die Fehler verschwinden mit nichts anderem als dem Hinzufügen handcodierter Accessoren. –

+0

Ist dies verwandt mit [Android Studio 2.1.1] (http://stackoverflow.com/questions/37426036/android-studio-not-play-well-with-lombok)? –

+0

Das ist, was ich benutze, ich habe nicht versucht, mit etwas anderem zu bauen. Funktioniert es für Sie mit einer anderen Entwicklungsumgebung? –

Verwandte Themen