1

我正在 NetBeans 平台应用程序中实现保存/加载。我正在使用 XStream 序列化为 XML。

但是我有反序列化的问题。当我使用 ObjectInputStream 时,我以这种方式重新加载了它:

public class NBSystemClassLoaderObjectInputStream extends ObjectInputStream
{
    public NBSystemClassLoaderObjectInputStream(InputStream in) throws IOException
    {
        super(in);
    }

    @Override
    public Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException
    {
        try
        {
            ClassLoader currentTccl = Thread.currentThread().getContextClassLoader();
            return currentTccl.loadClass(desc.getName());
        } catch (Exception e)
        {
        }
        return super.resolveClass(desc);
    }
}

所以它会使用 NB Platform 的特性来寻找一个类。如何以相同的方式覆盖 XStream 类加载?

4

1 回答 1

0

XStream 有两个有用的实例方法:getClassLoader 和 setClassLoader。最后一个可用于为 XStream 实例提供所需的 ClassLoader

于 2012-05-31T11:52:15.130 回答