我有预选赛的比赛
@Inject
@ChangeType(FOO)
private Event<SomeEventClass> event
我想在观察者方法中获取限定符(FOO)的值。我知道如何获取限定词作为注释,但不确定如何获取限定词的实例及其值。
public void listen(@Observes SomeEventClass event, EventMetadata meta) {
Set<Annotation> qualifiers = meta.getQualifiers();
for (Annotation qualifier : qualifiers) {
//qualifier.annotationType()
}
}
最佳答案
您只需要将Annotation
强制转换为您的限定符类。
public void listen(@Observes SomeEventClass event, EventMetadata meta) {
Set<Annotation> qualifiers = meta.getQualifiers();
ChangeType ct = null;
for (Annotation qualifier : qualifiers) {
if (qualifier.annotationType().equals(ChangeType.class)) {
ct = (ChangeType) qualifier;
}
}
if (ct != null)
//do something with ct.value
}