Я читал этот учебник по Java 8, где автор показал код:
interface Formula {
double calculate(int a);
default double sqrt(int a) {
return Math.sqrt(a);
}
}
И затем сказал
Невозможно получить доступ к методам по умолчанию из лямбда-выражений. следующий код не компилируется:
Formula formula = (a) -> sqrt( a * 100);
Но он не объяснил, почему это невозможно. Я запустил код, и он дал ошибку,
несовместимые типы: Формула не является функциональным интерфейсом
Итак, почему это невозможно или в чем смысл ошибки? Интерфейс удовлетворяет требованию функционального интерфейса, имеющего один абстрактный метод.