Ciao: Volevo essere sicuro che un'annotazione fosse presente in fase di compilazione in una classe. È possibile ? Mi rendo conto che le annotazioni sono, loro stesse, delle classi, quindi presumo di sì - ma non sono proprio sicuro sintatticamente dove e come applicare/implementare una tale struttura nelle mie classi.Enforza annotazioni java in fase di compilazione
risposta
È possibile scrivere un processore di annotazione per eseguire una logica arbitraria in fase di compilazione.
Da un processore di annotazione, è possibile eseguire operazioni come verificare se una classe ha una struttura o un membro specifici se esiste una specifica annotazione su tale classe. Sono abbastanza flessibili: per un'idea più precisa di cosa puoi fare con loro, controlla the API. Sono supportati anche nei principali IDE come Eclipse e Netbeans.
Un'introduzione alla scrittura di un processore di annotazione è here.
Questa è una buona risposta. Aspetterò di vedere se c'è un livello più alto o un approccio più semplice (cioè un modo per far rispettare semplicemente questo codice/classi esistenti). – jayunit100
Da quello che posso dire, il processore di annotazioni tralascia l'elaborazione su classi che non hanno già le annotazioni, il che non sembra essere quello che l'OP sta cercando. Sto cercando la stessa soluzione, quindi, se sbaglio, mi piacerebbe un esempio. –
Se si utilizza @SupportedAnnotationTypes ("*") sul processore, questo raccoglierà tutte le classi, anche se non ci sono annotazioni su di esso. – prunge
- 1. Terminologia Java: perché l'errore in fase di compilazione e non l'eccezione in fase di compilazione?
- 2. Aggiunta di annotazioni Java in fase di esecuzione
- 3. Compilazione classe Groovy in fase di esecuzione in Java
- 4. Come affermare qualcosa in fase di compilazione in Java?
- 5. Errore in fase di compilazione di Java Generics 'Incompatible Type'
- 6. offsetof in fase di compilazione
- 7. perché Java revert operatori logici, mentre in fase di compilazione
- 8. annotazioni simili a Java in C++
- 9. Compilazione sass/scss di ASP.NET in fase di esecuzione e in fase di compilazione?
- 10. Come specificare il nome per le annotazioni delle risorse in fase di compilazione?
- 11. Asserzioni in fase di compilazione in C++?
- 12. Imporre fase di compilazione constexpr
- 13. Come compilare NSArray in fase di compilazione?
- 14. Costanti degli array in fase di compilazione
- 15. Clojure costanti in fase di compilazione
- 16. Rilevamento costante in fase di compilazione C++
- 17. Running PublicResXFileCodeGenerator in fase di compilazione
- 18. C++ hexfloat parsing in fase di compilazione
- 19. Valori interi in fase di compilazione
- 20. if/else in fase di compilazione?
- 21. È valido "strlen()" in fase di compilazione?
- 22. Mappa due tipi in fase di compilazione
- 23. Qt - Errore 2 in fase di compilazione
- 24. Java: verifica se esiste un determinato nome di metodo in fase di compilazione
- 25. Groovy AST - Aggiunta di annotazioni alla compilazione
- 26. Tipo di variabile primitiva in fase di compilazione
- 27. annotazioni Java
- 28. std :: equivalente cout in fase di compilazione o static_assert stringificazione di valori costanti in fase di compilazione in C++ 11
- 29. Determinazione del tipo di eccezione multicatch in fase di compilazione
- 30. fase di compilazione limiti di matrice
Ho spesso visto i correttori di annotazioni usati come parte di una suite di test unitari. Funzionerebbe per te? – templatetypedef
Bene: ho alcune costanti che devono essere ottenute dalle classi. Le classi hanno un brutto costruttore, quindi non posso farle rispettare usando getter. Quindi ho pensato di annotare la classe usando annotazioni con i parametri costanti come campi di annotazione. – jayunit100