如何在没有类路径上的实现类的情况下反序列化“序列化”实例?
我正在写一个工具,需要从字节数组中获取java.io.Serializable
的实例。
困难在于“真正的”类不是(也不能是......)在类路径上(我不会解释为什么在这里..)。下面
的代码失败的is.readObject()
有ClassNotFoundException
因为实现类是不是在classpath
问:
是有可能做到这一点?通过反思?通过使用Unsafe
?通过使用子类ClassLoader
?要么...?如何在没有类路径上的实现类的情况下反序列化“序列化”实例?
byte[] data = ... try (ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(data));) {
Object o = ois.readObject();
Serializable s = (Serializable)o;
}
回答:
在IIS可能实现这一目标?
由反射号?
使用不安全
号?
号
通过使用子类类加载器的?
是的,但类加载器仍然必须从某个地方得到类。 RMI代码库功能就是一个很好的例子。
以上是 如何在没有类路径上的实现类的情况下反序列化“序列化”实例? 的全部内容, 来源链接: utcz.com/qa/262396.html