java如何使用lambda实现ComponentScan的自定义过滤器?
将@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<?>[]
,而不是lambda的典型@FunctionalInterface
注释类
那么,如果所需参数为Class
,是否可以使用lambda?如果没有,您将如何更新这个Filter
类以支持它
共 (0) 个答案