我想创建一个类,用日志信息(例如,before/after语句)将所有对方法的调用代理给它的超类。但是,使用这个类的框架将通过新的(..)调用加载它,或者通过其他反射机制加载它,所以我不能使用代理语义来启动这个类。有没有办法让new和newinstance()操作在所有情况下都使用代理-或者我们必须使用代理api显式地创建invocationhandler类的示例?具体来说:我正在调试一个分布式框架,它已经有了自己的方法在运行时从xml文件创建类示例(hadoop-mapreduce)。
qvk1mo1f1#
我不认为你能轻易地用java修补程序。我认为您可以尝试aop,或者直接对类进行黑客攻击(因为您将获得源代码,因为它是hadoop)。否则,我认为反射或字节码修改可能是一种选择,但它们都将非常糟糕。对我来说,直接破解类和使用一个被破解的jar听起来是最简单的方法。顺便说一句,你好:)
1条答案
按热度按时间qvk1mo1f1#
我不认为你能轻易地用java修补程序。我认为您可以尝试aop,或者直接对类进行黑客攻击(因为您将获得源代码,因为它是hadoop)。否则,我认为反射或字节码修改可能是一种选择,但它们都将非常糟糕。对我来说,直接破解类和使用一个被破解的jar听起来是最简单的方法。
顺便说一句,你好:)