Groovy Expando Сериализуемый - PullRequest
2 голосов
/ 06 мая 2011

есть ли способ сериализации подкласса расширения, который может быть получен с динамически добавленными свойствами. с примером;

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]
[:]

Я также попробовал тот же пример с оригинальным testProp полем объекта Sexpando (закомментировано выше)

Исходный код Expando.java Groovy можно проверить по адресу ЗДЕСЬ

спасибо за любой совет!

1 Ответ

1 голос
/ 06 мая 2011

Я не думаю, что это возможно, это длительный запрос функции , но, как говорит Йохен, существует проблема с тем, что Closures следует сериализовать в ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...