注解
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Searchable {
SearchType[] types() default { SearchType.ALL };
}
一些方法的反思
Reflections reflections = new Reflections(packageName);
reflections.getFieldsAnnotatedWith(); // Here's the problem
我想返回所有带有注释的字段,Searchable
其中至少包含SearchType.ALL
. 我尝试定义 anew Searchable() { ... }
以使用此方法传递。尽管这只会导致完全匹配的字段。例如,仅包含SearchType.ALL
. 这边走:
new Searchable() {
@Override public SearchType[] types() { return { SearchType.ALL }; }
@Override public Class<? extends Annotation> annotationType() { return Searchable.class; }
}
我希望字段@Searchable(types = { SearchType.ALL, SearchType.TEXT })
也很受欢迎,因为它包含SearchType.ALL
. 我怎样才能做到这一点?