如何覆盖jar包里面的方法

起始要覆盖一个jar包里面的方法很简单,先看下面三张图


        这里解释一下:第一张图是没覆盖jar包方法之前的输出,正常输出了一个对象转换成json字符串的结果,第二张图是我覆盖了JSON.toJSON()这个方法之后的输出。

        其实要完全覆盖一个Jar包的方法很简单,第一步你需要在你的src目录下新建一个同包名同类名的类(有点拗口,哈哈),第二步你想修改那个方法就改那天,最后编译输出的时候会优先使用你src下面的JSON类,而不是优先使用Jar包里面的JSON类,这样就达到了覆盖jar包方法了。

        再说一点,你自己新建出来的类,起始同包同类名还不行,还需要那个类里面的方法必须和jar包的全部一致,不能缺少方法,不然你想想,你写了一个JSON只有一个方法,人家jar包里面的可能几十个方法,jar包里面也互相调用了JSON这个对象缺少了方法肯定是有问题的最好的办法就是完全复制一个过去再修改。

        这样做有什么好处呢,假如你下载了一个开源的jar包,发现里面有一个方法写得很烂,怎么办?等作者更新?继承?当然也可以,但是你发现的写得很烂的方法是一个private怎么办?这个时候整个类都覆盖掉,爱怎么改就怎么改了。好处不用我再多说了吧。觉得有用就点个赞呗,呵呵。

        当前,上面说得这么多有一个前提就是,这个jar包的源码你得有,不然也谈不上优化了,对不对。


参考:http://tieba.baidu.com/p/4507553753


猜你喜欢

转载自blog.csdn.net/yw_1207/article/details/80828236