我有两个类Foo
和FooBar
,它们都有一些带注释的字段。我只想扫描Foo
而不扫描FooBar
的带注释字段。我目前正在尝试使用https://github.com/ronmamo/reflections中的org.reflections.Reflections
,我有以下内容:
Set<Field> fields = new Reflections("my.package.Foo", new FieldAnnotationsScanner())
.getFieldsAnnotatedWith(MyAnnatation.class);
但是,由于它以相同的前缀开头,因此也会在FooBar
中拾取字段。如何构造Reflections
对象以便仅扫描一个类?
答案 0 :(得分:0)
过滤结果有效
Set<Field> fields = new Reflections("my.package.Foo", new FieldAnnotationsScanner())
.getFieldsAnnotatedWith(MyAnnatation.class)
.stream().filter(field -> field.getDeclaringClass().equals(Foo.class))
.collect(Collectors.toSet());