注意

  1. receiver parameters 只能作为方法的第一个参数
  2. 方法调用的时候,receiver parameters不影响方法的调用时的签名
  3. 使用反射获取Method时,跟第二条的思路一样
@Schedule("before method")
public @Schedule("before return type") String test(@Schedule("receiver parameters") Test this,
@Schedule("before method parameter1") String a1, @Schedule("before method parameter2") String a2)
throws @Schedule("before throws exception") IndexOutOfBoundsException {
System.out.println(this.toString());

@Schedule("before local variable")
String str = "str";

return str;
}

上面的方法,需要使用如下的方式反射获取

Method m = Test.class.getMethod("test", String.class,String.class);

没有receiver parameters啥事!

​Explicit receiver parameters​​​​Explicit Receiver Parameters​​​​Java - How to get annotation on explicit receiver parameter using reflection?​