前言
本想接着上一章 Java8 Stream实战(二) 继续往后开展 Java8 Stream
相关API实践,但是考虑到今天要介绍的内容不仅仅只是针对现有 API ,还有如何对 Stream#reduce
进行相关的拓展,以满足日常开发的需要,于是单独开一篇进行介绍。
本想接着上一章 Java8 Stream实战(二) 继续往后开展 Java8 Stream
相关API实践,但是考虑到今天要介绍的内容不仅仅只是针对现有 API ,还有如何对 Stream#reduce
进行相关的拓展,以满足日常开发的需要,于是单独开一篇进行介绍。
其实阅读Java源码本身并没有那么难,只要我们踏出第一步,后面反而比我们想象的要简单。可能很多Java初学者并不知道从哪里下手,所以本篇博客将挑选一个源码较为简单的工具类—— java.util.Objects
作为切入点,走入Java源码的世界。
本篇内容摘自《Java8 实战》
在阅读本篇文章之前,我希望你能了解什么是行为参数化——它允许你定义一个代码块来表示一个行为,然后传递它,利用这个概念,你就可以编写更为灵活且可重复使用的代码。
上一篇 自定义注解实战(一) 中说到使用aop最大的好处是不侵入业务代码,但是有些业务需要拦截请求,比如参数校验,为空的话直接返回isNull的错误信息,这时候用AOP来做这件事就显得不太优雅了,所以我想到了用拦截器来实现,定义注解的方式还是一样,这里就不多加赘述了。
个人见解:使用aop最大的好处是不侵入业务代码,就可以在方法执行前或者执行后来实现某些功能,比如日志打印,权限处理等等。正是因为不侵入代码的特性,我们不建议利用aop去截断请求(request),返回包含错误信息的响应(response)。其实我之前有这么做过,自定义权限注解,用户没有权限的话,直接返回没有权限的错误信息(response),功能上可以实现,虽然给我抛异常了,有代码洁癖的我就只能使用拦截器的方法实现该注解了,利用拦截器实现注解将在 自定义注解实战(二) 中来介绍,本篇介绍利用aop来实现注解——当说明书来看吧。。。
Update your browser to view this website correctly. Update my browser now