我有限定符的事件
@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()
}
}
答案 0 :(得分:1)
您只需将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
}