Я пытаюсь применить объектную модель Groovy к сложной структуре JSON.
Я реализовал все POGO, необходимые для моделирования этого JSON, но я только что понял, что конструктор Map по умолчанию не автоматически создает экземпляры Objects в списках (и это предполагаемое поведение, я думаю).
class Foo {
String fooKey
@Override
String toString() {
return "Foo{" +
"fooKey='" + fooKey + '\'' +
'}'
}
}
class Toto {
Foo foo
List<Foo> foos
@Override
String toString() {
return "Toto{" +
"foos=" + foos +
", foo=" + foo +
'}'
}
}
public static void main(String[] args) {
Toto toto = new Toto(["foo": ["fooKey": "fooVal"], "foos": [["fooKey": "fooVal"]]])
println toto
println toto.foo instanceof Foo
println toto.foos instanceof List<Foo>
println toto.foos.get(0) instanceof Foo
println ""
println "--------------"
println ""
Foo foo = new Foo()
println foo instanceof Foo
println foo
}
Что выводит следующее:
Toto{foos=[[fooKey:fooVal]], foo=Foo{fooKey='fooVal'}}
true
true
false <----- This is the problem
--------------
true
Foo{fooKey='null'}
Есть ли способ создать экземпляр моего List<Foo>
, не переопределяя конструктор по умолчанию сам?