将lambda作为参数传递给泛型类型 - java 8 [英] Passing lambda as parameter with generic type - java 8

查看:2566
本文介绍了将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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆