编程技术文章分享与教程

网站首页 > 技术文章 正文

日常开发小技巧02 手把手教你Java Function编程 #java

hmc789 2024-11-16 20:56:55 技术文章 2 ℃

手把手教你Function编程。

今天就来讲一下function接口的使用。首先看一下function接口,function接口是一个函数式接口,它里面主要有3个常用的方法:apply、compose以及andThen。接下来就演示一下这3个方法,并进行一下简单的讲解。

·首先是apply方法,比如这边用Integer作为输入类型,string作为输出类型去定义function,它的作用就是输出这么一句话,就是number is什么,等价于下面这种方式,这边来调用一下。这边输出就是前面定义的the number is 123,输入这个数。

·然后是compose以及andThen方法,这边定义了两个函数,一个是a to one,就是输入的数加一,第二个就是MultiThree,就输入的数乘以3。

·来看一下compose方法,compose方法相当于先去执行输入的比负函数的apply方法,然后再将所得到值去调用自身的apply方法。就是这边的function的compose会先执行add one这个function,然后将所得的值再去调用apply方法。

addOne是加一,这边输入数是三,也就是先会去调用a to one function得到一个3+1,然后将所得到的值再去调用multiThree的apply方法,也就是四再去乘以三,最后会得到一个12这么一个结果。

·再看一下andThen方法,andThen方法刚好与compose相反,它会先去调用MultiThree的function,也就是会先去乘3,然后再去调用understand括号里的函数。a的问也就是先乘3以后将得到值再加一,这边预期会得到一个10。

来看一下这两个函数的调用结果,可以看到前面是先调用了addOne,然后再乘以3,第二个是先调用了multiThree,然后再进行了addOne。

·日常工作中还会自己写一些可能比较简便的工具类,比如会写一些范型方法去接受function类型的参数。举个具体的例子,比如会想要把list中的对象的某个元素去获取出来,然后组成一个list。如果自己写可能会先转成stream流,然后再去collect。

·如果这种操作比较多可以直接写工具类,就类似于这里的,会以一个范型类元素作为一个类似的路参,然后分别调用传入的Function函数,也是采用了一个泛型,从而以获取支持更多的使用场景。

·来跑一下看一下,这边定义了一个people list,people里面就两个元素,一个name,一个age,然后放两个people到list里面,调用前面的genParamList方法。传入function就是people的getName方法,正常情况下能直接获取到每一个people的name所组成的list。

·来跑一下,看到了,获取到前面两个元素的name分别是YY和TT。其他的一些泛型方法也可以根据日常需要自己去进行编写,像省略一下compose和apply的书写,understand也是类似。这边唯一需要注意的就是返回值要稍微注意一下,看看是最后返回是哪个函数的返回值类型。

这些源码都已经上传到空间了,大家想获取可以看我主页加V进行获取。欢迎大家点赞关注收藏留言,后续不迷路,让我们下期再见。

标签列表
最新留言