我正在使用 CGLib 来增强 A 类。
public class A {
public void printName(){
System.out.println("guy");
}
}
我有 B 类,它扩展了 A 类。
public class B extends A{
public void printName(){
System.out.println("someone else!");
}
}
当我增强它时,如何告诉 CGLib 实例化 B 而不是 A?
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()
}
以下代码应打印“其他人!”
getEnhancedClass( true ).printName();