没有构造函数的Javaassist Proxy-Class

时间:2017-11-07 08:26:50

标签: java bytecode javassist

我目前使用Javaassist为类生成代理:

ProxyFactory f = new ProxyFactory();
f.setSuperclass(JFrame.class); // Just an example.

// I would like to create a proxy for JFrame to
// fill with method implementations...
f.setHandler(handler); // ... in an own handler

Class<?> proxyClazz = f.createClass();

我的问题是:也调用了JFrame构造函数。说得通。但我不想要这个。我想生成一个空类作为代理,它与其他普通的JFrame分配兼容。

有办法做到这一点吗?感谢您的所有想法和想法。

1 个答案:

答案 0 :(得分:1)

  1. 序列化
  2. 您可以创建以序列化形式表示所需类的字节数组,并使用ObjectInputStream.readObject

    这是可能的,但很难准备正确的数据。

    1. NativeConstructorAccessorImpl
    2. 这是spy中实现mockito方法的方式。

      1. Unsafe.allocateInstance
      2. 因此,您准备代理类并将其实例化为其中一种方法(或其他方式)。

        PS :查看objenesis库。