我目前使用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分配兼容。
有办法做到这一点吗?感谢您的所有想法和想法。
答案 0 :(得分:1)
您可以创建以序列化形式表示所需类的字节数组,并使用ObjectInputStream.readObject
。
这是可能的,但很难准备正确的数据。
NativeConstructorAccessorImpl
这是spy
中实现mockito
方法的方式。
Unsafe.allocateInstance
因此,您准备代理类并将其实例化为其中一种方法(或其他方式)。
PS :查看objenesis
库。