0

クラス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();
4

2 に答える 2