我正在使用XMLEncoder將對象圖寫入XML文件。 這工作正常,除了UUID屬性(其名稱ID在我的JavaBean) 我知道我需要一個PersistenceDelegate來完成它。我寫了下面一個:使用XMLEncoder序列化UUID
class UuidPersistenceDelegate extends PersistenceDelegate {
protected Expression instantiate(Object oldInstance, Encoder out) {
UUID id = (UUID) oldInstance;
return new Expression(oldInstance, id.getClass(), "fromString", new Object[]{ "id" });
}
}
並將其設置爲編碼器:
encoder.setPersistenceDelegate(UUID.class, new UuidPersistenceDelegate());
在運行時調用encoder.writeObject時,我得到以下異常(...):
java.lang.IllegalArgumentException:無效的UUID字符串:ID
有誰知道如何讓這個工作?