如果我有方法 foo(Predicate bar)
,接下来我可以使用它:
foo(new Predicate<MyObject>() {
public boolean apply(MyObject obj) {
return true;
}
}
)
但是我怎样才能使用 lambda 风格的表达式达到相同的结果:
foo((MyObject obj) -> true); //obvious compile exception
如何将带有 lambda 的泛型类型传递给方法? 或者,简单地说,我如何使用没有局部变量的 lambda 风格创建类 Predicate(或其他)的匿名对象。
最佳答案
不要使用原始类型 foo(Predicate<? extends MyObject> bar)
或在 lambda 中转换 foo(obj -> ((MyObject) obj).myMethod())
关于java - 将 lambda 作为具有泛型类型的参数传递 - java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34727456/