覆盖java类改造jar包

我们在使用一个第三方的类库

去对接企业WX的时候

发现他们缺了一个字段

这个字段是上个月WX刚加的字段

就是这个

读取成员接口

返回直属上级

这直属上级原来没有

然后呢

这个类库现在还没有来得及加上

所以这种情况怎么办呢

我们可以

把他这个类里面的源码复制出来

然后呢我们自己加一个属性

我们试一下哈

首先我们点开这个类

然后点这 Download Sources

把源码下下来

好放大一点

然后呢我们把这个包名

按照他这个规则

创建一个包(在我们的项目里啊)

ok 然后再创建一个这个类

然后把他这个源码全都复制过来

好我把这个关掉就行了

我们在这加一个属性

看一下他这个自主上级的详情啊

direct_leader

他返回的是一个字符串数组

所以呢我们这块

要一个数组(字符串类型)

directLeader

(改一下) ok

然后呢我们这里边直接 get

就应该可以拿到了,因为他用的lombok

getDirectLeader() 大家看!可以拿到了

但这样还不行

我们还要检查一下

他是怎么给他赋的值

看一下这里边源码

放大一点

然后把这个再关掉

从这拿到原始报文(口误:响应原文)

然后呢转成json(口误:转成对象)

我们再点进去

他用了这个 WxCpGsonBuiler

然后呢做了多个适配器

这边有一个 WxCpUser 的适配器

我们再点开

大家看!他这里边都是自己写的

所以呢我们需要把这个

复制一下

整个这个类也覆盖掉

把这个包名

也创建一份

然后呢把这个类也创建一个

好然后把整个这个复制过来

把这关掉

然后我们在这里改(新复制过来的)

在(一堆赋值的)最下边吧

在这吧

好这样就可以了

然后我们再回到刚才这个main方法

再试一下

user.getDirectLeader()

然后我们取第0个

sout试一下

debug

好这样就可以了

那下一期视频我们一起来从

克隆代码开始

贡献一次这个源代码试试

最后更新于