我有一个正在使用的 JAR 文件,我想修改其中的一个文件。简而言之,我有
public class ClassB {
public void printMethod(){
ClassA A = new ClassA();
A.printout();
}
}
public class ClassA {
public void printout(){
System.out.println("1234");
}
}
我想将 ClassA 的打印输出方法更改为
public class ClassA {
public void printout(){
System.out.println("abcd");
}
}
我知道你不能在不解压/重建 JAR 的情况下修改它,为此,假设我不能这样做。有没有办法在不实际触及当前 ClassA 的情况下对 ClassA 进行修改?我的方法是使用重写的方法从 ClassA 继承一个新类,然后从调用 Inherited ClassA 的 ClassB 继承一个新类
public class InheritedClassA extends ClassA{
@Override
public void printout(){
System.out.println("abcd");
}
}
public class InheritedClassB extends ClassB{
@Override
public void printMethod(){
InheritedClassA A = new InheritedClassA();
A.printout();
}
}
不过我不喜欢这种方法,因为在我的实际 JAR 中,有很多类都在使用 ClassA,以至于试图对所有类正确执行此操作是一场噩梦,然后所有这些类都需要对它们进行相同的处理。我知道你不能重载/覆盖整个类,这基本上是我想做的。还有另一种方法可以做到这一点吗?
编辑 更难,我不能下载任何新的框架或软件或任何东西。