温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Lambda怎么在Java中项目中运用

发布时间:2021-06-15 10:44:43 来源:亿速云 阅读:165 作者:Leah 栏目:编程语言

本篇文章为大家展示了Lambda怎么在Java中项目中运用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

组织参数

组织参数目的就是为了第三方接口的调用,而且都要符合第三方 API 的要求。拿微信支付 APP  支付接口来举个例子,它的请求报文大致是这样的:

Lambda怎么在Java中项目中运用

微信支付APP支付请求报文

如果我们记我们封装后调用的入参为INPUT,将INPUT按照上述接口进行组织满足微信 APP  支付接口的参数为OUTPUT。那么它们的转换关系其实就是下面的一个Lambda抽象:

INPUT -> OUTPUT

数学上为:

Lambda怎么在Java中项目中运用

对应Java中的Lambda函数是Function<INPUT>。

但是在实际开发中需要根据接口的具体情况做不同的处理,需要引入包含请求方法(上图中的POST)和接口端点,记作TYPE,高中我们讲过函数替代法,我觉得这里可以用一用:

如果我们令 :

Lambda怎么在Java中项目中运用

很容易推导出:

(TYPE,INPUT) -> OUTPUT

对应Java中的Lambda函数是BiFunction

调用第三方接口

在Java开发中,无论你选择的请求方式是Spring  Framework提供的RestTemplate或者反应式客户端WebClient,或者OKHttp都可以很方便地调用 Http  接口。也可以抽象,不管你用什么方法都是提供了一个调用工具,我们要拿工具来用就要get,因此非常适合Java中的

@FunctionalInterface public interface Supplier<T> {      /**      * Gets a result.      *      * @return a result      */     T get(); }

Lambda式子为:

() -> T

不过目前Payment Spring Boot对于调用层还没有抽象的打算,如果考虑到抽象一定会用Supplier去实现。

消费结果

最终我们都需要对调用获取的结果进行消费,宏观上只能消费一次。对应的Lambda式子:

(T) -> {}

对T进行消费是没有返回值的。就像吃一个苹果,吃完之后是不会立即有产物的,否则你要赶紧吃点 ?。

Java中提供了Consumer接口来作为消费的Lambda接口,非常容易理解。

但是在Payment Spring  Boot中对请求结果是需要返回给调用端的,也就是需要返回值的,当时我考虑了很久,在Function和Consumer之间,最终还是选择了Consumer,或许就是它更接近消费的本质。

上述内容就是Lambda怎么在Java中项目中运用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI