如何使用参数作为注释来调用方法

时间:2011-07-25 06:12:31

标签: java annotations

  

可能重复:
  How to make a method be called passive before invoke a method

例如:

public class Robot{
    public static void doSomethingBefore(){
        System.out.println("Do something before sayHello");
    }
}

public class Person {
    @MethodListener(className="Robot",methodName="doSomethingBefore")
    public void sayHello(){
        System.out.println("hello");
    }
    public static void main(String[] args){
        new Person().sayHello();
    }
}

如果我喜欢使用注释:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface MethodListener {
    public String className();
    public String methodName();
}

输出将是:

在做之前做点什么你好 喂

现在,如果我想在doSomethingBefore方法中进行一些更改:

public class Robot{
    public static void doSomethingBefore(String name){
        System.out.println("Do something before sayHello "+name);
    }
}

Annotation定义应该如何?即MethodListener Annotation中需要进行哪些更改? 请告诉我... 提前致谢

1 个答案:

答案 0 :(得分:0)

我发现这与此问题严格相关How to make a method be called passive before invoke a method即使示例代码也是如此。请先阅读这些答案(它会解释一些事情),然后添加更具体的问题。