2013-06-05 5 views
6

Позволяет семантике аннотаций Java размещать их где-то внутри тела функций, например. аннотировать конкретный вызов функции, оператор или выражение?Могу ли я использовать аннотацию внутри тела метода?

Например:

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"); 
    } 
} 

Для сокращения часто письменная (слишком часто, определенно!):

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");    
    } 
} 

Если концепции этого внедренной аннотации вообще возможно? Или что-то подобное?

ответ

7

ElementType указывает действительные цели аннотации. Вы не можете аннотировать любое старое заявление. Это в основном сужается до деклараций; декларации:

  • тип аннотации
  • Конструктор
  • поле
  • локальная переменная
  • метод
  • пакет
  • параметр
  • типа
Смежные вопросы