List<String> list = ( () -> new LinkedList<String>() )();
上面的代码引发以下内容:Multiple non-overriding abstract methods found in interface java.util.List
。
此错误是什么意思?
答案 0 :(得分:3)
那不是我得到的错误消息,尽管它肯定是无效的Java语法。
您不能直接使用Java语法调用lambda表达式。编译器没有用于直接调用lambda表达式的语法。
必须将其分配给功能接口类型,作为参数传递给方法或强制转换为功能接口类型。
如果将lambda表达式转换为功能接口类型(此处为Supplier
),则可以显式调用它。
List<String> list = ( (Supplier<List<String>>) () -> new LinkedList<String>() ).get();