JDK8函数式接口之Function

简介: JDK8函数式接口之Function

写在前面


JDK8 API提供了很多函数式接口,这些函数式接口可以被抽象成一个具体的方法,并且使其使用在Lambda表达式中,今天我们要来说的就是其中的Function函数接口。


JDK8函数式接口之Function


Function函数式接口,其中定义了一个apply方法。


Function的全称其实是java.util.function.Function<T, R>, 其中的apply方法需要接收一个泛型为T的参数值,并且执行apply方法完成后,会返回一个泛型为R的结果对象。


在Lambda表达式经常会使用Function函数式接口,比如我们经常使用的map方法,经过map方法的转换,可以将对象中的某个属性进行转换,并且经由Collections方法转换成对应的List集合对象。


我们来说一下如何使用吧,虽然我们在实际开发中单独使用的不太多,但是还是要说一下的。


public static void main(String[] args) {
    Function<String, Integer> function = x -> Integer.parseInt(x);
    System.out.println(function.apply("123"));
    System.out.println(function.apply("123").getClass());
}


执行结果如下图所示:

image.png

经过上面的例子,我们就可以看出来,Function函数接口是可以对参数类型进行类型转换,无论是直接转换,还是强制转换。


andThen


andThen方法是Function接口中提供的一个默认方法,其功能就是在原有的基础上进行一个附加函数处理,下面来看一下具体代码示例:


public static void main(String[] args) {
    Function<String, Integer> function = Integer::parseInt;
    Function<Integer, Integer> function1 = x -> x + 1;
    System.out.println(function.andThen(function1).apply("123"));
    System.out.println(function.andThen(function1).apply("123").getClass());
}


执行结果如下:

image.png


总结


今天我们学习了Function函数式接口,使用此函数接口来给对象的数据类型进行了一个转换,也介绍了Function函数接口中的一些特定的方法,大家都学会了吗?


相关文章
|
2月前
|
Java 数据处理
|
2月前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
27 1
|
3月前
|
编解码 安全 Java
jdk8新特性-接口和日期处理
jdk8新特性-接口和日期处理
|
4月前
|
Oracle 安全 Java
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
|
4月前
|
Java Maven 容器
JDK版本特性问题之想使用接口中的私有方法,如何实现
JDK版本特性问题之想使用接口中的私有方法,如何实现
JDK版本特性问题之想使用接口中的私有方法,如何实现
|
5月前
|
机器学习/深度学习
现代深度学习框架构建问题之Sigmoid类实现Function接口如何解决
现代深度学习框架构建问题之Sigmoid类实现Function接口如何解决
32 4
|
6月前
|
Java
JavaSE——JDk8新特性(1/2):Lambda表达式(具体实现、函数式接口、简化setAll、Comparator),Lambda表达式的省略写法
JavaSE——JDk8新特性(1/2):Lambda表达式(具体实现、函数式接口、简化setAll、Comparator),Lambda表达式的省略写法
58 1
|
6月前
|
Java
JDK 1.8 函数接口(收藏用)
JDK 1.8 函数接口(收藏用)
|
7月前
|
Java API 容器
Java8函数式编程接口:Consumer、Supplier、Function、Predicate
Java8函数式编程接口:Consumer、Supplier、Function、Predicate
115 1
|
7月前
|
Java
【JAVA进阶篇教学】第四篇:JDK8中函数式接口
【JAVA进阶篇教学】第四篇:JDK8中函数式接口

热门文章

最新文章