Лямбда может использоваться только с функциональным интерфейсом?

Я сделал это:

public class LambdaConflict
{
    public static void main(String args[]){
        //*
        System.out.println(LambdaConflict.get(
            (str) -> "Hello World!! By ME?"
        ));
        /*/
        System.out.println(LambdaConflict.get(new Intf<String> (){
            @Override public String get1(String str){
                return "Hello World!! By get1 " + str;
            }
        }));
        /*****/
    }

    public static String get(Intf<String> i, boolean b){
        return i.get1("from 1");
    }
}

interface Intf<T>
{
    public T get1(T arg1);

    public T get2(T arg1);
}

и получите это исключение:

несовместимые типы: Intf не является функциональным интерфейсом. В интерфейсе есть несколько неопределяемых абстрактных методов. Примечание. Некоторые сообщения были упрощены; перекомпилировать с -Xdiags: многословно, чтобы получить полную ошибку вывода 1

Есть ли условие, что я не могу использовать лямбду для замены анонимного класса?

Ответы на вопрос(4)

Ваш ответ на вопрос