2013-06-05 4 views
6

Consente alla semantica delle annotazioni Java di posizionarle in un punto all'interno di un corpo di funzioni, ad es. annotare una specifica funzione chiamata, istruzione o espressione?Posso usare un'annotazione all'interno di un corpo del metodo?

Ad esempio:

class MyClass { 
    void theFunc(Thing thing) { 
     String s = null; 
     @Catching(NullPointerException) //<< annotation ? 
      s = thing.getProp().getSub().getElem().getItem(); 
     if(s==null) 
      System.out.println("null, you fool"); 
    } 
} 

per abbreviare la scritta spesso (troppo spesso, sicuramente!) Della nota:

class MyClass { 
    void theFunc(Thing thing) { 
     String s = null; 
     try { 
      s = thing.getProp().getSub().getElem().getItem(); 
     } catch(NullPointerException ex) { } 
     if(s==null) 
      System.out.println("null, you fool");    
    } 
} 

Se il concetto di questo incorporato possibile a tutti? O qualcosa di simile?

risposta

7

ElementType specifica i target validi di un'annotazione. Non è possibile annotare alcuna vecchia istruzione. È fondamentalmente ridotto a dichiarazioni; dichiarazioni di:

  • tipo di annotazione
  • costruttore
  • campo
  • variabile locale
  • metodo
  • pacchetto
  • parametro
  • tipo