Die richtige Antwort ist
%Vor%Wenn Sie möchten, dass sie als Eigenschaften gemäß Abschnitt verwendet werden. 8.8: Groß- / Kleinschreibung der abgeleiteten Namen des JavaBeans API-Spezifikation (z. B. Zugriff auf sie über $ {object.xIndex} in einer JSP .
Sie sollten Introspector.decapitalize aus dem Paket java.beans verwenden und Sie haben kein Problem, weil es mit Java-Regeln konform ist.
Eclipse ide generiert automatisch Setter und Getter als:
%Vor%Dies entspricht der API-Spezifikation für Java-Beans.
In Übereinstimmung mit JavaBeans API Spezifikation von 1997 Es sollte so sein, wie Thomas Einwaller beschreibt.
%Vor% Das ist bedauerlich, getx und setx sind keine Wörter, weshalb der Code in seltenen Fällen auch von IntelliJ generiert wurde
erhält eine Warnung von IntelliJ. Obwohl dies der JavaBeans-Spezifikation entspricht, verstößt es gegen die Konvention für
Benennen einer Methode .
In dem seltenen Fall, dass dies ein Wort oder ein Akronym bilden würde, wäre es desinformativ, zB die Methode setiMessage
most
hat wahrscheinlich nichts mit SETI zu tun.
die einzig gültige Messung der Codequalität (WTFs pro Minute),
Ich bewerte das das ist schlechter Code .
Es kommt alles auf diesen Satz der JavaBeans-Spezifikation an:
Um jedoch die gelegentliche Verwendung aller Großbuchstaben zu unterstützen, prüfen wir, ob die ersten beiden Zeichen des Namens sind beide Großbuchstaben und wenn ja, lass es in Ruhe.
Welche Art der Verwendung aller Großbuchstaben darauf zutrifft, ist mir unklar. Feldnamen sollten laut Konvention , sei Kamel gefasst. Es scheint Deutsch:. Englisch: www.mjfriendship.de/en/index.php?op...39&Itemid=32 Ich erstelle für mich unkonventionelle Methodennamen, um unkonventionelle Feldnamen zu unterstützen, so wie es von a 20+ Jahre altes Dokument.
Es sollte auch beachtet werden, dass, obwohl es eine überwältigende Unterstützung für die JavaBeans-Spezifikation in Tools zu sein scheint,
es wird nicht ausschließlich verwendet. Z.B. Kotlin erkennt xIndex
nicht als Eigenschaft im obigen Beispiel. Umgekehrt, die
Die Kotlin-Eigenschaft var xIndex = 0
führt zu den Java-Methoden getXIndex
und setXIndex
. Dies scheint ein Fehler zu sein
nach der JetBrains-Unterstützung, aber ich sehe nicht, wie sie das beheben können, ohne eine Bremsänderung vorzunehmen.
Einige Tools, die die JavaBeans-Spezifikation unterstützen, haben dies nicht immer getan, zB Jackson und Swagger Code Generator wurden gepatcht, um dem zu entsprechen. Obwohl IntelliJ Accessoren gemäß der JavaBeans-Spezifikation generiert, ist das Beispiel in der Dokumentation unterscheidet sich davon. Wahrscheinlich, weil die Leute nichts über den Standard wissen und natürlich den normale Methodenbenennungskonvention.
Also, wann sollten wir der JavaBeans-Spezifikation folgen? Wenn Eigenschaftsnamen von Accessoren durch Tools abgeleitet werden sollten, die
Verlassen Sie sich auf diesen Standard, dann möchten wir ihn vielleicht verwenden. Zum Beispiel wird Jackson vertrauen
auf die Eigenschaft xIndex
wird über die Methoden getxIndex
und setxIndex
zugegriffen, es sei denn, wir verwenden Annotationen.
Wann sollten wir diesen Standard vermeiden? Nach meiner Empfehlung: Wenn der Code von Menschen gelesen und verstanden werden soll. Weil die Verwendung von Camel Cases bei Benennungsmethoden nicht desinfizierend ist.
Wenn ich es so hätte, würden wir normale Namenskonventionen verwenden, zB getXIndex
und setXIndex
. Aber angesichts des Staates
von den Dingen, die beste Lösung, die ich sehe, wird von @vaxquis vorgeschlagen:
Benennen Sie Ihr Feld "indexX" oder was auch immer, Ihr Problem ist gelöst ... Dinge nicht zu komplizieren - auch wenn setxIndex ist der richtige Weg für Beans, die Methode namens setxIndex erhöht den WTF-Faktor des Codes, ohne Ihnen zu geben alles im Gegenzug.
Alle Kommentare bezüglich der JavaBeans-Spezifikation sollten gemäß der Spezifikation selbst gesendet werden [email protected].
Ich denke getXindex()
ist der beste Weg. Der Getter sollte mit "get" beginnen, gefolgt von dem Mitgliedsnamen, wobei der erste Buchstabe großgeschrieben wird. Auch die neuesten Konventionen, von denen ich gehört habe, sagen, dass wir mehrere Großbuchstaben nacheinander vermeiden sollten. Zum Beispiel ist getHTMLtooltip
falsch. Es sollte stattdessen getHtmlTooltip
sein. Auch sollten Sie versuchen, alle Ihre Mitglieder final
zu machen und es sollte keine Notwendigkeit für Setter geben, da die Klasse unveränderlich sein wird;)
Tags und Links java getter-setter naming-conventions javabeans