Frage

Projekt Lombok einen Nutzen bietet im Vergleich zu Code-Templates / Code-Generierung in Eclipse? Gibt es irgendwelche Nachteile (außer einschließlich der .jar)?.

War es hilfreich?

Lösung

Ein Vorteil von Lombok ist, dass wenn Sie eine Klasse mit Anmerkungen versehen haben, sagen wir, die @data Anmerkung, müssen Sie nie den Code regenerieren, wenn Sie Änderungen vornehmen. wenn Sie ein neues Feld Fügen Sie zum Beispiel, würde @data enthalten automatisch das Feld in den Gleichen, hashCode und toString Methoden. Sie müssten manuell diesen Wandel herbeizuführen, wenn Eclipse-generierten Methoden verwenden. Ein Teil der Zeit, können Sie die manuelle Steuerung bevorzugen, aber für die meisten Fälle, erwarte ich nicht.

Andere Tipps

Der Vorteil von Lombok ist, dass der Code nicht wirklich da ist - d. H Klassen sind viel besser lesbar und sind nicht überladen

Vorteile:

  • Sehr einfach zu bedienen
  • Die Klassen sind viel sauberer ( ‚kein Standardcode‘), insbesondere ‚struct' artige innere Klassen auf ein Minimum schrumpfen:

    @Data private class AttrValue { private String attribute; private MyType value; }

    Dies wird sowohl Getter und Setter erstellen, eine toString () und korrekte Hash () / equals (Methoden) beiden Variablen einschließlich. Die Variante mit @Value schafft eine unveränderliche Struktur (keine Setter, alle Felder endgültig).

  • Keine Notwendigkeit erzeugen / entfernen Code, wenn Sie Felder ändern (Getter, Setter, toString, hash, gleich)
  • Keine Interferenz mit handcodierte Methoden: Sie nur eigenes spezifisches Setter der Klasse hinzufügen, wo nötig. Lombok überspringt diese und erzeugt alles andere

Nachteile:

  • No Name Refactoring noch: Umbenennung value oben wird (noch) nicht Umbenennungs getValue() und setValue()
  • Mai verlangsamt ecplise leicht
  • toString Ausgang nicht so schön wie zum Beispiel ToStringBuilder von Apache commons

Nur sehr wenige in den Sinn kommen:

  • wird auf Anmerkung basiert, so dass keine gute für Legacy-Projekt noch in der Vor-Java5 ( delombok kann helfen). Eigentlich bedarf es der javac v1.6-Compiler.
  • Sie haben noch Einschränkungen über mehrere Konstruktoren

Das Abhängigkeitsproblem ist allerdings nicht zu übersehen, aber Sie haben es aus Ihrer Frage ausgeschlossen.

Eclipse-EMF bietet einige Funktionen, die sehr nützlich sind, welche Lombock noch nicht unterstützt:

  • Powerful Benachrichtigung mechanims über Änderungen in Ihrer Instanzen informiert werden
  • Allg API ohne Java-Reflexion. Zugang und ändern Instanzen ohne einen starken Hinweis auf die Art
  • Befehl und API-basierte Bearbeitung
  • Querverweise zwischen den Modellen: Erstellen und Lastmodell Bäumen und EMF nimmt die Belastung durch einen Proxy für den Querverweis zu schaffen. Das spart Speicher und steigern die Performance in großen Domain Bäume
  • Und vieles mehr ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top