我正在构建一个自定义注释,其中有一个Class类型的字段。如何在使用注释时在其中设置值? 代码如下:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface SpringCache {
String putIt();
String getIt();
Class c();
}
这是我的自定义注释。现在,当我使用它时,如何将类赋予变量“c”?
@SpringCache(putIt="I'm put", getIt="I'm get", c=<??>)
public class TestSpringCache {
public static void main(String[] args) {
System.out.println();
}
}
在这种情况下,我想要c = TestSpringCache.class。
答案 0 :(得分:2)
你只需写下你想要的课程:
@SpringCache(putIt="I'm put", getIt="I'm get", c=TestSpringCache.class)
public class TestSpringCache {
public static void main(String[] args) {
System.out.println();
}
}
如果它不在同一个包中,您可能需要添加一个import语句。
答案 1 :(得分:1)
您必须从ApplicationContext
(您可以注入它)ctx.getBean()
中获取所有类实例。在那里,您可以检查是否存在注释。
答案 2 :(得分:0)
实际上我没有找到解决方法。正如许多人所说,这似乎是不可能的。虽然我已经找到了解决这个问题的工作。
我删除了类类型并且只保留了String和Boolean类型变量,并且为了获取带注释的类,我从用户获取了包含具有已定义注释的类的包的路径。然后对于包中的每个类,我检查了注释。如果注释存在,我做了我想要的,否则什么也没做。
感谢大家为你付出时间。