Wo man bei der Autogenerierung von Methoden mit Eclipse aufpassen sollte

Beim Generieren von Gettern und Settern in Eclipse kann es zu einem Problem mit der CamelCase-Schreibweise der Variablen kommen. Sollte der zweite Buchstabe des Variablennamens Upper-Case sein, wird der erste Buchstabe im generierten Getter/Setter Lower-Case (statt wie üblich Upper-Case). Der Fall könnte zu Problemen mit Frameworks führen, die anhand des Methodennamens abhängig von der CamelCase Schreibweise semantische Zusammenhänge interpretieren.

Ein Beispiel:

1.
fieldname: “fooBar”
von Eclipse generierter Getter: “getFooBar” (wie erwartet)

2.
fieldname: “foObar”
von Eclipse generierter Getter: “getFoObar” (wie erwartet)

3.
fieldname: “fOobar”
von Eclipse generierter Getter: “getfOobar” (erwartet: “getFOobar”)

Handelt es sich dabei um ein vorgesehenes Verhalten oder eine CamelCase Konvention?

Dies entspricht tatsächlich den Java-Bean-Spezifikationen. Es handelt sich um einen Spezialfall der CamelCase-Namensgebung von Methoden.

Dieses Verhalten lässt sich dementsprechend auch in anderen beliebten IDE’s wie IntelliJ und NetBeans replizieren und wird auch von Frameworks, die sich an den genannten Spezifikationen ausrichten, so erwartet bzw. umgesetzt. Aufpassen sollte man jedoch trotzdem sobald man solche Variablennamen verwendet, denn ein solcher Fall könnte schnell zu einem nicht einfach nachzuvollziehenden Fehlverhalten führen.

Gibt es eine Getter/Setter-Syntax, die man beeinflussen kann?

In Eclipse kann man die Generierung von Gettern und Settern nur bedingt beeinflussen. Relativ frei ist man darin, was innerhalb der Methoden passiert. Man beim Benennen der Methoden lediglich die Option, über die Namenskonventionen von Variablen Präfixe und Suffixe auszufiltern. Wenn man also beispielsweise zu einer Variable abiggerb Methoden generieren möchte, kann man als Präfix a und als Suffix b festlegen und bekommt so eine Methode wie isBigger().

Short URL for this post: https://wp.me/p4nxik-3wW
This entry was posted in Did you know? and tagged , . Bookmark the permalink.

Leave a Reply