我正在使用 XMLEncoder 将对象图写入 XML 文件。这很好用,除了 UUID 属性(它在我的 JavaBean 中具有名称id)我知道我需要一个 PersistenceDelegate 来完成它。我写了以下一篇:
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
有谁知道如何让它工作?