iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java8中Function接口怎么使用
  • 492
分享到

Java8中Function接口怎么使用

2023-07-02 10:07:51 492人浏览 安东尼
摘要

这篇文章主要介绍了Java8中Function接口怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java8中Function接口怎么使用文章都会有所收获,下面我们一起来看看吧。Java 8 中 Func

这篇文章主要介绍了Java8中Function接口怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java8中Function接口怎么使用文章都会有所收获,下面我们一起来看看吧。

Java 8 中 Function 接口的介绍

Java 8 中提供了一个函数式接口 Function,这个接口表示对一个参数做一些操作然后返回操作之后的值。这个接口的有一个抽象方法 apply,这个方法就是表明对参数做的操作。

// Java Function 接口的定义@FunctionalInterfacepublic interface Function<T, R> {R apply(T t);default <V> Function<V, R> compose(Function<? super V, ? extends T> before) {    Objects.requireNonNull(before);    return (V v) -> apply(before.apply(v));}default <V> Function<T, V> andThen(Function<? super R, ? extends V> after) {    Objects.requireNonNull(after);    return (T t) -> after.apply(apply(t));}static <T> Function<T, T> identity() {    return t -> t;}

Function 接口的用法

apply 方法的使用方式如下:

Function<Integer, Integer> add = p -> p + 10;Integer result = add.apply(10);// 这里会输出 20,因为这个函数定义的操作时把参数加上 10 后返回System.out.println(result);

compose方法的参数也是一个Function对象。在 A 这个Function上调用compose方法时传入 B 这个Function对象,然后得到一个新的Function对象 C。C 这个Function对象的实现逻辑是先带哦用 B 的apply方法对参数进行操作,将得到的结果再作为参数传递给 A 这个Function对象的apply 法,然后返回执行后的结果。

addThen方法也是类似的原理,只不过内部执行方法的顺序不一样而已。

Function<Integer, Integer> multiplyTen = a -> a * 10;Function<Integer, Integer> addTen = a -> a + 10;// 先增加 10,然后再乘 10,输出结果 110Function<Integer, Integer> addTenThenMultiplyTen = multiplyTen.compose(addTen);System.out.println(addTenThenMultiplyTen.apply(1));// 先乘 10,然后再加 10,输出结果 20Function<Integer, Integer> multiplyTenAddTenThen = multiplyTen.andThen(addTen);System.out.println(multiplyTenAddTenThen.apply(1));

Function 接口的实例

public class CheckUtils {    private static final Function<String, String> lengthCheck = params -> {        if (params.length() > 100) {            throw new RuntimeException("Length exceed max limit.");        }        return params;    };    private static final Function<String, String> invalidCharacterCheck = str -> {        if (!str.matches("^[a-f,A-F]$")) {            throw new RuntimeException("Contains invalid character.");        }        return str;    };        public static void checkStringLengthAndPhoneNumber(String string) {        invalidCharacterCheck.compose(lengthCheck).apply(string);    }}

关于“Java8中Function接口怎么使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java8中Function接口怎么使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Java8中Function接口怎么使用

本文链接: https://www.lsjlt.com/news/341456.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java8中Function接口怎么使用
    这篇文章主要介绍了Java8中Function接口怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java8中Function接口怎么使用文章都会有所收获,下面我们一起来看看吧。Java 8 中 Func...
    99+
    2023-07-02
  • 如何使用Java8中的Function接口消灭if...else
    这篇文章给大家分享的是有关如何使用Java8中的Function接口消灭if...else的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在开发过程中经常会使用if...else...进行判断抛出异常、分支处理等操...
    99+
    2023-06-29
  • 妙用Java8中的Function接口消灭if...else
    目录Function 函数式接口Supplier供给型函数Consumer消费型函数Runnable无参无返回型函数使用小技巧处理抛出异常的if处理if分支操作如果存在值执行消费操作...
    99+
    2024-04-02
  • 怎么使用Java8中接口的新特性
    这篇文章主要介绍“怎么使用Java8中接口的新特性”,在日常操作中,相信很多人在怎么使用Java8中接口的新特性问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Java8中接口的新特性”的疑惑有所帮助!...
    99+
    2023-06-25
  • JDK8新特性java.util.function-Function接口怎么使用
    这篇文章主要介绍“JDK8新特性java.util.function-Function接口怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JDK8新特性java.util.function-F...
    99+
    2023-07-05
  • Java 8 中 Function 接口使用方法介绍
    目录Java 8 中 Function 接口的介绍Function 接口的用法Function 接口的实例Java 8 中 Function 接口的介绍 Java 8 中提供了一个函...
    99+
    2024-04-02
  • Java8中接口的新特性使用指南
    目录前言编写测试类ComepareTest第一种情况,一个类实现了接口的同时又继承了一个父类情况二情况三总结前言 在Java8中接口中不再只有抽象方法,还可以有静态方法以及默认方法,...
    99+
    2024-04-02
  • JDK8新特性-java.util.function-Function接口使用
    目录JDK8新特性-java.util.function-Function接口Function常用方法&&实践apply基本应用总结JDK8新特性-java.util...
    99+
    2023-05-14
    JDK8新特性 java.util.function-Function JDK8 接口
  • Java8中怎么利用Stream实现函数式接口
    这期内容当中小编将会给大家带来有关Java8中怎么利用Stream实现函数式接口,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。函数式接口什么是函数式接口?简单来说就是只有一个抽象函数的接口。为了使得函数式...
    99+
    2023-06-16
  • Java8中CompletableFuture怎么使用
    今天小编给大家分享一下Java8中CompletableFuture怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1...
    99+
    2023-06-29
  • Java8中Stream怎么使用
    今天小编给大家分享一下Java8中Stream怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、概述Java 8 是...
    99+
    2023-07-02
  • Java8中怎么实现一个函数式接口
    这篇文章给大家介绍Java8中怎么实现一个函数式接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。以下我们继续深入Java8函数式编程模型public class Test1 { ...
    99+
    2023-05-30
    java8
  • 一文教你使用Java8中的静态接口方法
    一文教你使用Java8中的静态接口方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。默认方法默认方法让我们能给我们的软件库的接口增加新的方法,并且能保证对使用这个接口的老版本代...
    99+
    2023-05-31
    java8 静态接口 ava
  • C++中怎么使用接口
    C++中怎么使用接口,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先我们需要一些宏://  // Interfaces.h &nb...
    99+
    2023-06-17
  • 怎么在Java8中使用StringJoiner类拼接字符串
    怎么在Java8中使用StringJoiner类拼接字符串?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。假设现在遍历一个字符串集合,需求是每个元素按照 “.” 分开。Str...
    99+
    2023-06-06
  • javascript中的function怎么使用
    这篇“javascript中的function怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来...
    99+
    2024-04-02
  • 怎么对Java8中的函数式接口进行测试
    怎么对Java8中的函数式接口进行测试?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. 函数式接口的理解根据重构的思想,需要把容易变化的模块进行抽象并封装起来,从这个点来...
    99+
    2023-05-31
    java8 函数式接口 ava
  • Java8时间接口LocalDateTime详细用法
    目录一、新时间日期API常用、重要对象介绍二、JDK 8新增日期和时间的新类三、总结一、新时间日期API常用、重要对象介绍 ZoneId: 时区ID,用来确定Instant...
    99+
    2024-04-02
  • Optional怎么中Java8 项目中使用
    这篇文章给大家介绍Optional怎么中Java8 项目中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允...
    99+
    2023-06-06
  • Java8中的CompletableFuture类怎么使用
    本篇内容主要讲解“Java8中的CompletableFuture类怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java8中的CompletableFuture类怎么使用”吧!Java...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作