我们在使用lambda表达式的时候,最常见的操作就是进行匹配。不过关于接口中存在着许多方法,有的小伙伴进行匹配时会比较茫然。我们可以明确的是lambda是可以对接口进行匹配的,那么关于具体的匹配说明会在下文中为大家带来讲解,同时附上有关的实例代码。
1、说明
(1)每个lambda都可以通过特定的接口匹配给定的类型。一个所谓的函数接口必须有一个并且只有一个抽象方法声明。对应于它的每个lambda表达式必须与抽象方法的声明相匹配。由于默认方法不是抽象的,可以随意将默认方法添加到您的函数接口中。
(2)任何只包含一个抽象方法的接口都可以用来做lambda表达式。为了使定义的接口满足要求,应该用@FunctionalInterface标记该接口。如果在接口中定义了第二个抽象方法,编译器会注意到这个注释并抛出异常。
2、实例
@FunctionalInterface interface Converter<F, T> { T convert(F from); } Converter<String, Integer> converter = (from) -> Integer.valueOf(from); Integer converted = converter.convert("123"); System.out.println(converted); // 123
注意,如果不写@FunctionalInterface 标注,程序也是正确的。
以上就是Java接口中Lambda表达式匹配的方法,相信大家对于本篇Lambda表达式的使用有了新的认识,大家学会后也赶快练习一下吧。