/ / Annotazioni Java - Esiste una libreria di supporto per leggere / elaborare annotazioni? - java, annotazioni

Annotazioni Java - Esiste una libreria di supporto per leggere / elaborare annotazioni? - java, annotazioni

Inizio a utilizzare pesantemente le annotazioni Java. Un esempio è prendere il metodo con annotazioni e convertirle in un comando da riga di comando "telnet". Lo faccio analizzando le annotazioni e agganciato al parser di opzioni jopt.

Tuttavia, faccio un sacco di questi manualmente. Ad esempio, l'elaborazione delle annotazioni dei parametri del metodo ..

Method method = ... //;
Class[] parameters = method.getParamterTypes();
Annotation[][] annotations = method.getparamterAnnotations();

for( int i = 0; i < parameters.length; i++ )
{
// iterate through the annotation , see if each param has specific annotation ,etc.
}

È molto ridondante e noioso.

Esiste un progetto opensource che aiuti a elaborare le annotazioni?

risposte:

6 per risposta № 1

Lo usiamo per cercare un'annotazione specifica:

for (Field field : clazz.getDeclaredFields()) {
if (field.isAnnotationPresent(MyAnnotation.class)) {
field.setAccessible(true);
String fieldName = field.getName();
Object fieldValue = field.get(myObj);
field.setAccessible(false);
}
}

1 per risposta № 2

Qualsiasi progetto conterrebbe lo stesso identico codice di caldaia. Perché non fai la tua propria utilità?

Sono sicuro che potresti usare ASM:


0 per risposta № 3

Non sei proprio sicuro di quale aiuto hai bisogno per le annotazioni, ma ti suggerisco di dare un'occhiata al mio Annox progetto. Qui "s API.

Con Annox puoi, per esempio, leggere le annotazioni in

  • XAnnotation
  • XAnnotationField
  • XPackage
  • XClass
  • XConstructor
  • XField
  • XMethod
  • XParameter

strutture che potrebbero adattarsi meglio alle tue esigenze. Puoi leggere annotazioni arbitrarie da XML, eseguire visitatori su di loro e così via.