时髦的扩展可序列化



有没有办法序列化可以使用动态添加的属性检索的 expando 子类。 与示例;

class Sexpando extends Expando implements Serializable{
//String testProp
static final long serialVersionUID = -2056428816613381087L
String toString() {
    "an object of Sexpando - $serialVersionUID"
}
}

class SexpandoTest {
static main(args) {
    def s = new Sexpando()
    s.testProp = "small test string"
    println s.properties
    def file = new File('objects.dta')
    def out = file.newOutputStream()
    def oos = new ObjectOutputStream(out)
    oos.writeObject(s)
    oos.close()
    def retrieved = []
    file.eachObject { retrieved << it }
    retrieved.each { println it.properties }
}}

我得到输出:

[testProp:small test string]
[:]

我还尝试了与Sexpando对象的原始testProp字段相同的示例(上面已注释掉)

Groovy的原始Expando.java可以从这里检查

谢谢你的任何建议!

我认为这

是不可能的,这是一个长期存在的功能请求,但正如 Jochen 所说,闭包应该序列化为一个问题......

相关内容

  • 没有找到相关文章