Рассмотрим следующий фрагмент класса:неявное преобразование типа для лямбда-выражения
public void method() {
test(() -> { });
}
void test(Runnable a) {
System.out.println("Test 1");
}
void test(A a) {
System.out.println("Test 2");
}
interface A extends Runnable {
}
Вызов метода method()
приведет к выходу Test 2
. Это означает, что лямбда-выражение () -> { }
было неявно преобразовано в A
. Зачем?