【发布时间】:2021-01-31 20:21:06
【问题描述】:
我想做一个注释,生成一个具有默认返回值的方法。因为注解不能是通用的,所以我必须以某种方式获取它注解的方法的返回类型。
我的目标是用 return <defaultReturnValue> 替换该方法,默认 defaultReturnValue 取决于传递给注释的值。
<?> 是注解方法的返回类型。
public @interface WhenDisabled{
<?> defaultReturn();
}
@WhenDisabled(1)
int foo1() {
// ... complicated calculation
return result;
}
class MyClass {
}
@WhenDisabled(new MyClass())
MyClass foo2() {
// ... complicated calculation
return result;
}
在此示例中,foo1 的正文应替换为 return 1;,foo2 的正文应替换为 return new MyClass();。
【问题讨论】:
标签: java reflection annotations