Fare qualsiasi librerie Java utilizza le annotazioni per la generazione di codice?
-
19-09-2019 - |
Domanda
Qualcuno è a conoscenza di una libreria che utilizza le tecniche (annotazioni e classworking) descritto in questo articolo per la generazione automatica dell'Oggetto standard metodi toString(), equals() e hashcode() per le classi java?
Soluzione
Sì, progetto Lombok fa questo. Vedere http://projectlombok.org . Esso non solo supporta javac, ma anche Eclipse. Così i metodi non sono nel codice sorgente, ma vengono visualizzati nella vista struttura.
Altri suggerimenti
Di certo non ho visto questo e io non sono davvero sicuro di quello che sarebbe guadagnato da esso.Trovo che automatico toString
generazione di solito non è quello che vuoi quando purga file di registro e l'Ide si hanno gli strumenti per consentire di generare hashCode
e equals
implementazioni, anche se concesse queste non si riflettono automaticamente eventuali modifiche allo schema interno della vostra classe.
Ci sarebbero 2 opzioni per l'attuazione di questo:
- In fase di compilazione di classe annotazione che viene elaborato (ad es.da IDE) per generare i relativi metodi. Può annotazioni modificare generato il bytecode delle classi sono dichiarati? Penso che questo appraoch è una pessima idea, perché si può dire che cosa è successo guardando il codice sorgente
- Runtime annotazione sui relativi metodi di indicare che deve essere valutato tramite il meccanismo speciale.Questo richiede ancora di dichiarare e di annotare i vostri metodi e io non sono sicuro di come si sarebbe in realtà intercettare chiamate di metodo per usare l'annotazione in ogni caso