本篇文章为大家展示了Lambda怎么在Java中项目中运用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
组织参数
组织参数目的就是为了第三方接口的调用,而且都要符合第三方 API 的要求。拿微信支付 APP 支付接口来举个例子,它的请求报文大致是这样的:
微信支付APP支付请求报文
如果我们记我们封装后调用的入参为INPUT,将INPUT按照上述接口进行组织满足微信 APP 支付接口的参数为OUTPUT。那么它们的转换关系其实就是下面的一个Lambda抽象:
INPUT -> OUTPUT
数学上为:
对应Java中的Lambda函数是Function<INPUT>。
但是在实际开发中需要根据接口的具体情况做不同的处理,需要引入包含请求方法(上图中的POST)和接口端点,记作TYPE,高中我们讲过函数替代法,我觉得这里可以用一用:
如果我们令 :
很容易推导出:
(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
但是在Payment Spring Boot中对请求结果是需要返回给调用端的,也就是需要返回值的,当时我考虑了很久,在Function
上述内容就是Lambda怎么在Java中项目中运用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。