0

我有一个类动物和扩展动物的子类猫和狗。我有一个名为 Zoo 的类,其变量为 List;

IE

Class Animal {
  String name;

}

 Class Cat Extends Animal {
 String color;
}

Class Zoo {
  List<Animal> animalsInZoo;
  public void printAnimalClass()
  { 
    for(Animal a :animalsInZoo)
   {
    System.out.println(a.getClass.getName());
   } 
  }
 }

zoo 的对象将具有可以是 Animal 的对象或 Animal 的子类的动物以下是 Zoo 类的 Object 的示例 JSON 表示。

 { "animalsInZoo" : 
   [
     {"name":"A"},
     {"name": "B","color":"white"}
   ]
  }

我必须将其转换为 java 对象,以使列表中的第一个动物转换为 Animal 类的对象,然后将第二个动物转换为 Cat 类的对象

4

1 回答 1

0

您必须自己进行转换,假设您有另一只具有相同属性的动物:

Class Horse Extends Animal {
    String color;
}

杰克逊不知道将 {"name": "B","color":"white"} 转换为 Cat 或 Horse。

您可以添加一个属性来标记您需要转换为哪种动物。

于 2013-08-27T10:04:04.273 回答