Java接口中Lambda表达式的匹配

我们在使用lambda表达式的时候,最常见的操作就是进行匹配。不过关于接口中存在着许多方法,有的小伙伴进行匹配时会比较茫然。我们可以明确的是lambda是可以对接口进行匹配的,那么关于具体的匹配说明会在下文中为大家带来讲解,同时附上有关的实例代码。

1、说明

(1)每个lambda都可以通过特定的接口匹配给定的类型。一个所谓的函数接口必须有一个并且只有一个抽象方法声明。对应于它的每个lambda表达式必须与抽象方法的声明相匹配。由于默认方法不是抽象的,可以随意将默认方法添加到您的函数接口中。

(2)任何只包含一个抽象方法的接口都可以用来做lambda表达式。为了使定义的接口满足要求,应该用@FunctionalInterface标记该接口。如果在接口中定义了第二个抽象方法,编译器会注意到这个注释并抛出异常。

2、实例

@FunctionalInterface
interfaceConverter<F,T>{
Tconvert(Ffrom);
}

Converter<String,Integer>converter=(from)->Integer.valueOf(from);
Integerconverted=converter.convert("123");
System.out.println(converted);//123

注意,如果不写@FunctionalInterface 标注,程序也是正确的。

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容