我的任務是複製從ClassLoaderB
的ClassB
對象到ClassLoaderA
的ClassA
。 ClassLoaderA
是ClassLoaderB
的子女。複製對象
我試圖用系列化和保存類ClassB
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(ClassB);
下一步將閱讀對象爲ClassLoaderA
的ClassA
。我怎樣才能做到這一點?
UPD:
這裏的對象是如何反序列化:
//Resurrection
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais);
try {
Object b1 = ois.readObject();
ois.close();
ClassA a1 = (ClassA) b1;
} catch (Exception e) {
e.printStackTrace();
}
的問題是,有符合一個ClassCastException:
ClassA a1 = (ClassA) b1;
只有當ClassB擴展ClassA時,纔可以將對象ClassB複製到ClassA的變量中,否則將出現編譯錯誤或ClassCastExceptions。 –