Domanda

Progetto Lombok offre alcun vantaggio rispetto ai modelli di codice / generazione di codice in Eclipse? Ci sono aspetti negativi (a parte incluso il .jar)?.

È stato utile?

Soluzione

Un vantaggio di Lombok è che una volta che hai annotato una classe con, per esempio, l'annotazione @Data, non è necessario per rigenerare il codice quando si apportano modifiche. Ad esempio, se si aggiunge un nuovo campo, @Data includerebbe automaticamente che campo nel pari, hashCode e toString metodi. Avresti bisogno di fare manualmente che il cambiamento quando si utilizzano metodi Eclipse generati. Qualche volta, si può preferire il controllo manuale, ma per la maggior parte dei casi, non si aspettano.

Altri suggerimenti

Il vantaggio di Lombok è che il codice non è in realtà lì -. Classi vale a dire sono molto più leggibile e non sono ingombra

I vantaggi:

  • molto facile da usare
  • Le classi sono molto più pulito ( 'nessun codice standard'), in particolare 'struct' come classi interne ridurre al minimo:

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

    Questo creerà sia getter e setter, un toString (), e corretta hash () metodi / equals (), tra cui entrambe le variabili. La variante con @Value crea una struttura immutabile (non incastonatori, tutti i campi finali).

  • Non c'è bisogno di generare / code rimuovere quando si cambia campi (getter, setter, toString, hash, è uguale)
  • Nessuna interferenza con i metodi codificati a mano: basta che si aggiunge propria specifica setter alla classe dove necessario. Lombok salta questo e genera tutto il resto

Svantaggi:

  • Nessun nome refactoring, eppure: rinominare value sopra sarà non (ancora) rename getValue() e setValue()
  • maggio rallenta leggermente ecplise
  • uscita toString non bello come, per esempio, ToStringBuilder da Apache Commons

Molto pochi vengono in mente:

  • si basa su di annotazione, così non va bene per il progetto legacy ancora in pre-Java5 ( delombok può aiutare). In realtà, si richiede con il compilatore javac v1.6.
  • si hanno ancora limitazioni quanto riguarda più costruttori

Il problema della dipendenza è da non trascurare, però, ma sono state escluse dalla tua domanda.

Eclipse EMF offre alcune caratteristiche che sono molto pratico che Lombock non supporta ancora:

  • mechanims notifica potenti per informarsi sui cambiamenti nelle istanze
  • API Generico senza Java riflessione. L'accesso e modificare le istanze senza un forte riferimento al tipo
  • Comando und editing basato su API
  • Riferimenti incrociati tra i modelli: Creare e alberi modello di carico e EMF gestisce il caricamento con la creazione di un proxy per il riferimento incrociato. Ciò consente di risparmiare memoria e incremento delle prestazioni in enormi strutture di dominio
  • E molto altro ancora ...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top