List<String> list = ( () -> new LinkedList<String>() )();
上面的代码引发了以下代码:Multiple non-overriding abstract methods found in interface java.util.List
。
这个错误是什么意思?
发布于 2018-09-21 04:39:26
这不是我得到的错误消息,尽管它肯定是无效的Java语法。
您不能在Java语法中直接调用lambda表达式。编译器没有用于转换lambda表达式以直接调用它的语法结果。
它要么必须分配给函数接口类型,作为参数传递给方法,要么强制转换为函数接口类型。
如果将lambda表达式转换为函数接口类型(这里为Supplier
),则可以显式调用它。
List<String> list = ( (Supplier<List<String>>) () -> new LinkedList<String>() ).get();
https://stackoverflow.com/questions/52432899
复制相似问题