2012-06-14 3 views
-2

Я хочу создать аннотацию, которая ищет имя метода, начиная со слова, указанного в аннотации, и выполняет этот метод.Как создать пользовательские аннотации с логикой внутри в JAVA

Я новичок в аннотации и я знаю, что есть некоторые встроенные аннотации, как:

@override, @suppressWarnigs, @documented, @Retention, @deprecated, @target 

Есть ли еще аннотаций?

+0

Вам стоит попробовать GOOGLE! – plucury

+1

Аннотации не исполняют код. Аннотации могут использоваться кодом для выполнения действий. Вам нужно больше узнать об аннотациях, прежде чем приступить к выводу, что они решат любую проблему, которую вы пытаетесь решить. – vanza

ответ

0

Если вы хотите узнать больше об Аннотации, вы можете посмотреть на это Oracle Documentation.

1

Я уверен, что там есть хорошие проводники, но вот быстрый, простите меня за любые опечатки :).

Вы можете создать свою собственную аннотацию легко:

@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.METHOD) 
public @interface ExecuteMethod { 
String methodToExecute; 
} 

Вы можете аннотировать код с ним.

@ExecuteMethod("MethodToExecute") 
... 

код связан с аннотацией выглядит следующим образом:

public class MethodExecutor{ 
private Method method; 

public MethodExecutor(Method method){ 
    this.method = method; 
} 

public boolean executeMethod(){ 
     if(method.isAnnotationPresent(ExecuteMethod.class)){ 
      ExecuteMethod executeMethodAnnot=method.getAnnotation(ExecuteMethod.class); 
      String methodName = executeMethodAnnot.methodToExecute(); 
      .... your code that calls the method here 
     } 
} 

Вы также нужен кусок кода, чтобы проверить и выполнить эту аннотацию в точке вы хотите это сделать:

for(Method m : classToCheck.getMethods()) { 
    if(m.isAnnotationPresent(ExecuteMethod.class)) { 
     MethodExecturor methorExectuor = new MethodExecutor(m); 
     methodExecutor.executeMethod(m) 
    } 
} 
Смежные вопросы