假设我有一个foo
的注释界面
@interface foo {
String bar();
}
我希望能够将foo
传递给类中的通用T
,我们称之为someClass
class someClass<T> {
T ourAnnotation = getClass().getAnnotation(T); // this won't work
}
我要通过此操作的原因是,稍后在创建基类时,我们可以通过此泛型
@foo(bar = ...)
public class MyClass extends someClass<foo> {
public MyClass() {
ourAnnotation.bar // ... do stuff
}
}
我该如何通过?
编辑:我已经找到了解决方法
在someClass
内,我进行了以下修改:
class someClass<T> {
final T info;
public someClass(Class<T> tClass) {
info = getClass().getAnnotation(tClass);
}
}
然后,通过传递foo
(确保将其保留策略设置为运行时),您可以轻松地从MyClass
获取值。
答案 0 :(得分:0)
在someClass
内,我进行了以下修改:
class someClass<T> {
final T info;
public someClass(Class<T> tClass) {
info = getClass().getAnnotation(tClass);
}
}
然后,通过传递foo
(确保将其保留策略设置为运行时),您可以轻松地从MyClass
获取值。
这使gson可以找到值