Groovy 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]
[:]
я также попробовал тот же пример с оригинальным полем testProp объекта Sexpando (это закомментировано выше)
Оригинальный Expando.java Groovy можно проверить ЗДЕСЬ
спасибо за любой совет!
1 ответ
Решение
Я не думаю, что это возможно, это длительный запрос на функцию, но, как говорит Йохен, есть проблема с тем, к чему следует сериализовать Closures...