我正在尝试做一些Java注释魔术。我必须说,我仍在追赶注释技巧,并且某些事情对我来说还不太清楚。
所以…我有一些带注释的类,方法和字段。我有一个方法,它使用反射对类进行一些检查并将一些值注入到类中。这一切都很好。
但是,我现在面临的情况是我需要一个注释实例(可以这么说)。所以…批注与常规接口不同,您不能对类进行匿名实现。我知道了。我在这里浏览了有关类似问题的一些帖子,但似乎无法找到所需的答案。
我基本上想获得一个注解的实例,并能够使用反射来设置它的某些字段(我想)。有没有办法做到这一点?
好吧,显然没有那么复杂。 真!
正如一位同事所指出的,您可以像下面这样简单地创建注释的匿名实例(如任何接口):
MyAnnotation:
public @interface MyAnnotation { String foo(); }
调用代码:
class MyApp { MyAnnotation getInstanceOfAnnotation(final String foo) { MyAnnotation annotation = new MyAnnotation() { @Override public String foo() { return foo; } @Override public Class<? extends Annotation> annotationType() { return MyAnnotation.class; } }; return annotation; } }
归功于Martin Grigorov。