Java项目中如何扩展第三方jar包中的类

 我来答
西安IT优就业
2018-08-19 · TA获得超过1561个赞
知道小有建树答主
回答量:1108
采纳率:90%
帮助的人:184万
展开全部

下面给你介绍几种方法:

一、继承你想要扩展的类,重写想要扩展的方法

这种做法是比较好的,符合面向对象的思想。另外动作比较小,风险也不会很大。但是这种方法有个前提是,被扩展的类在扩展点能用这个子类去替换。比如说在Bean配置的过程中,可以用在需要这个类的地方用子类注入,而不是注入被扩展的类。就是说原来想要扩展的类都是直接new出来的,那么我们新写的子类根本就没法在需要扩展的地方使用。

二、直接复制一份想要扩展的类,在项目中创建同包同名的类

这种方法是我在网上看到的,这里利用了类加载的优先性,说的是WEB-INF目录下的类加载的优先级要比lib中jar包类的优先级要高。

三、使用ASM等字节码修改工具,直接修改这个类的字节码

这个是终极做法了,直接把这个类的字节码修改成你想要扩展的样子。思路相当直接,缺点就是你要对字节码非常熟悉,并且熟悉ASM这个工具。其次这种做法的风险比较大,如果你提出了这种想法,很有可能被pass掉。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式