2012-05-30 24 views
1

我在NetBeans平臺應用程序中實現保存/加載。我正在使用XStream來序列化爲XML。在XStream中加載類加載

但我有反序列化的問題。當我使用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平臺功能來查找類。我怎樣才能覆蓋XStream類加載相同的方式?

+0

爲什麼需要擴展ObjectInputstream?我將XStream與NetBeans平臺結合使用,實現了非常相似的用例,而無需這樣做。 –

+0

好吧,沒有必要使用ObjectInputstream,但ClassLoader的問題仍然是 – Uko

回答

0

XStream有兩個有用的實例方法:getClassLoader和setClassLoader。最後一個可用於爲所需ClassLoader提供XStream實例

+0

在很多情況下,這太遲了。在當前版本的XStream中,您現在可以爲Xstream的構造函數提供一個類加載器(僅供參考,我知道這是一個非常古老的問題)。 – Kalle