通过java类加载器加载的类重写现有类

通过java类加载器加载的类重写现有类,java,class,java-8,classloader,Java,Class,Java 8,Classloader,我的包中有一个名为MyTest的类。它有一个名为intgetval()的方法。我希望这个类被jar中同名的类覆盖(比如abc.jar)。我使用java类加载器加载jar,但仍然无法覆盖包中的类。我不想使用反射。有没有办法通过jar中的类重写包类 我还尝试了Thread.currentThread().setContextClassLoader(myclassloader)确保abc.jar首先出现在类路径中 当依赖于MyTest的类被另一个类加载器加载时,添加另一个类加载器可能不起作用。确保ab

我的包中有一个名为MyTest的类。它有一个名为
intgetval()
的方法。我希望这个类被jar中同名的类覆盖(比如
abc.jar
)。我使用java类加载器加载jar,但仍然无法覆盖包中的类。我不想使用反射。有没有办法通过jar中的类重写包类


我还尝试了
Thread.currentThread().setContextClassLoader(myclassloader)
确保
abc.jar
首先出现在类路径中


当依赖于
MyTest
的类被另一个类加载器加载时,添加另一个类加载器可能不起作用。

确保
abc.jar
首先出现在类路径中


当依赖于
MyTest
的类被另一个类加载器加载时,添加另一个类加载器可能不起作用。

除了类加载器,还有其他方法吗?我必须通过从jar加载类来克服包中的方法。正如我所说,
abc.jar
必须出现在类路径中的其他类之前。除了类加载器之外,还有其他方法吗?我必须通过从jar加载类来克服包中的方法。正如我所说,
abc.jar
必须出现在类路径中其他类的前面。在使用标记进行提问之前,请尝试检查标记的文本
JCL
不是您想要的,但是您想要的可能已经存在了。看起来您正在尝试这样做以进行测试,您是否考虑过使用类似Mockito或PowerMock的模拟框架?你想做的事情看起来很肮脏。在你使用标签提问之前,试着检查标签的文本
JCL
不是您想要的,但是您想要的可能已经存在了。看起来您正在尝试这样做以进行测试,您是否考虑过使用类似Mockito或PowerMock的模拟框架?你想做的事似乎真的很肮脏。