使用している JAR ファイルがあり、その中のファイルの 1 つを変更したいと考えています。一言で言えば、私が持っている
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 から新しいクラスを継承させ、継承された 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を使用しているため、すべてのクラスでこれを正しく実行しようとすると悪夢になり、すべてのクラスで同じプロセスが必要になるため、このアプローチは好きではありません。基本的に私がやりたいことであるクラス全体をオーバーロード/上書きすることはできません。これを行う別の方法はありますか?
編集 さらに難しくするために、新しいフレームワークやソフトウェアなどをダウンロードできません。