将@ComponentScan
与自定义过滤器一起使用时,代码应如下所示:
@ComponentScan(includeFilters = {@ComponentScan.Filter(
type = FilterType.CUSTOM, value = {**TypeFilterImpl**.class})})
但是当看TypeFilter
时:
@FunctionalInterface
public interface TypeFilter {
boolean match(MetadataReader var1, MetadataReaderFactory var2) throws IOException;
}
正如@FunctionalInterface
所说,使用lambda似乎是一种完美的情况。但是然后我们有了这个:
@interface Filter {
Class<?>[] value() default {};
}
这意味着@ComponentScan.@Filter.value
仅接受Class<?>[]
,而不接受典型的@FunctionalInterface
带注释的lambda类。
因此,如果必需的参数为Class
,则可以使用lambda吗?如果没有,您将如何更新此Filter
类以支持它?