• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何在没有类路径上的实现类的情况下反序列化“序列化”实例?

java 来源:titou10 5次浏览

我正在写一个工具,需要从字节数组中获取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代码库功能就是一个很好的例子。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)