Groovy Expando Serializable

时间:2011-05-06 07:54:31

标签: java groovy serializable expando

有没有办法序列化一个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 字段相同的示例(上面已注释掉)

可以从HERE

检查Groovy的原始Expando.java

感谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

我不认为这是可能的,它是long standing feature request,但正如Jochen所说,关闭应该序列化的问题......