При использовании @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
, похоже, идеальная ситуация для использования лямбды. Но тогда у нас есть это:
@interface Filter {
Class<?>[] value() default {};
}
Это означает, что @ComponentScan.@Filter.value
принимает только Class<?>[]
, а не типичный @FunctionalInterface
аннотированный класс для лямбды.
Так что можно использоватьлямбда, если обязательный аргумент Class
? Если нет, то как бы вы обновили этот класс Filter
для его поддержки?