私はjavassistで立ち往生しています。実行時にオブジェクトクラスに新しいメソッドを追加しました。
私のオブジェクトクラス:
package tmp3;
public class Car {
public Car(){}
}
私のテストクラス:
package tmp3;
import java.lang.reflect.Method;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.CtNewMethod;
public class TestMain {
public static void main(String[] args) {
try {
CtClass ctclass = ClassPool.getDefault().get("tmp3.Car");
CtMethod newmethod = CtNewMethod.make("public void testPrint() { System.out.println(\"test ok\"); }",ctclass);
ctclass.addMethod(newmethod);
ctclass.writeFile();
for(Method me: ctclass.toClass().getDeclaredMethods()){ //test print, ok
System.out.println(me.getName());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
しかし、それ以降は、どのように呼び出す(呼び出す)のかわかりません。javassistにはメソッドを呼び出す機能がないことを読みました。次に、javassistで追加したメソッドを呼び出すにはどうすればよいですか?
私は2日間でたくさんのことを試しましたが、成功しませんでした。これを手伝ってくれませんか。