クラスAを強化するためにCGLibを使用しています。
public class A {
public void printName(){
System.out.println("guy");
}
}
クラスAを拡張するクラスBがあります。
public class B extends A{
public void printName(){
System.out.println("someone else!");
}
}
CGLib を拡張するときに、A ではなく B をインスタンス化するように指示するにはどうすればよいですか?
public A getEnhancedClass( boolean trueIfIWantBInsteadOfA ){
e.setSuperclass( A.class ); // cannot change this
e.setCallback( createDummyInterceptor() );// an interceptor that just invokesSuper
/// ... missing code here
return (A) e.create()
}
次のコードは、「someone else!」と出力するはずです。
getEnhancedClass( true ).printName();