将lambda作为参数传递给泛型类型 - java 8 [英] Passing lambda as parameter with generic type - java 8
本文介绍了将lambda作为参数传递给泛型类型 - java 8的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我有一个方法 foo(Predicate bar)
,我可以使用它:
If I have a method foo(Predicate bar)
, I can use it next:
foo(new Predicate<MyObject>() {
public boolean apply(MyObject obj) {
return true;
}
}
)
但是,如何使用lambda样式表达式得到相同的结果:
But how can I reach the same result using lambda-style expressions:
foo((MyObject obj) -> true); //obvious compile exception
如何将lambda的泛型类型传入方法?
或者,简单地说,我如何使用lambda样式创建类Predicate(或其他)的匿名对象,而不使用局部变量。
How can I pass generic type with lambda into the method? Or, simply, how can I create anonymous object of class Predicate(or others) using lambda-style without local variables.
推荐答案
不要使用原始类型 foo(Predicate< ;? extends MyObject> bar)
里面lambda foo(obj - >((MyObject)obj).myMethod())
这篇关于将lambda作为参数传递给泛型类型 - java 8的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文