Javassistでwrapメソッドを作る方法が面倒

int foo(double a, boolean b) {...}

というメソッドがいろいろあったとき、

Object wrapped_foo(Object[] args) {
  return new Integer(foo(((Double) args[0]).doubleValue(),
                         ((Boolean) args[0]).booleanValue());
}

というのを汎用的に作る方法が、javassistでは引数処理で結構面倒。逆は簡単にできるようになっているんだけど。。。