Лямбда-выражения (ошибка - Target type of a lambda conversion must be an interface)
@FunctionalInterface
public interface Car {
void star();
}
public class Lada implements Car {
@Override
public void star() {
System.out.println("Yes!!");
}
}
public class Main{
public static void main(String[] args) {
Lada lada1 = new Lada();
lada1.star();
Lada lada2 = new Lada() {
@Override
public void star() {
System.out.println("yes!");
}
};
lada2.star();
Lada lada3 = () -> System.out.println("No");/// ошибка
lada.star();
Car car3 = () -> System.out.println("No");
car3.star();
}
}
Вопрос: почему эта запись неправильная, но при этом когда использую анонимный класс, там можно использовать класс Lada
?
Lada lada3 = () -> System.out.println("No");/// ошибка
lada3.star();
Источник: Stack Overflow на русском