公司有个需求,就是可以实现如下调用
这两个方法 最大的区别就是返回值,一个是包装类,一个是非包装类。
我翻了一会源码,觉得用Decoder解决比较好。
开启懒人模式,有别人写好的我拿来改一下就行,没有我就自己撸呗。
找到了一个,他大概是这样写的
本来他这个和我的业务也不太一样,我一看这直接去读原始的响应,然后开始Decoder,我觉得这个路子有点野。
于是先翻一下源码,源码默认的decoder
仔细读了一下,如果直接拿出响应自己来反序列化,路子有点野,而且有很多情况没有考虑到。
换个思路玩吧,我自己改写Type不就好了。
所以就是想当于把type包装一下。这里有个让我还想了一会儿的一个点。一般情况下我们知道
ParameterizedType,Class,TypeVariable,WildcardType我们都是直接做反射的时候获取的(这块扩展起来可以有多值得玩的地方,特别是要真正玩转反射的时候(很多时候写中间件是需要掌握的深一些的))。这个我要构建一个还真不知道如何构建。后来翻了一下,这不自己糊涂么,实现这个接口就可以了。
至于我说网上解法路子野还有一个原因,仔细读一下默认的解法你会发现有三种情况,这也是上面我为何要排队
HttpEntity.class
这下自己解决的感觉还挺满意,至少没破坏以前的解码流程。