Ну, у нас есть FunctionalInterface:
public interface Consumer<T> {
void accept(T t);
}
И я могу использовать его как:
.handle(Integer p -> System.out.println(p * 2));
Как мы можем разрешить фактический generic type этого лямбда-параметра в нашем коде?
Когда мы используем его как встроенную реализацию, не так сложно извлечь Integer из метода этого класса.
Пропустить что-нибудь? Или просто java не поддерживает его для лямбда-классов?
Чтобы быть более чистым:
Эта лямбда завернута в MethodInvoker (в упомянутом handle), который в своем execute(Message<?> message) извлекает фактические параметры для дальнейшего вызова метода отражения. До этого он преобразует предоставленные аргументы в целевые параметры с помощью Spring ConversionService.
Метод handle в этом случае является некоторой конфигурацией до того, как реальная работа приложения.
Другой вопрос, но с ожиданием решения для той же проблемы: Java: получить фактический тип универсального метода с параметром лямбда