注解
@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. 我怎样才能做到这一点?