[英]Java JSON deserialize inheritance class
I am using Gson to deserialize a class which is inherited from an abstract class. 我正在使用Gson反序列化从抽象类继承的类。
Here is my code: 这是我的代码:
public abstract class Mammal {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName(){
return name;
}
}
public class Dog extends Mammal {
public void bark(){
}
}
public class Cat extends Mammal{
public void mew(){
}
}
public class Main {
public static void main(String[] args) {
Gson gson = new Gson();
Mammal dog = new Dog();
String toGson = gson.toJson(dog);
Mammal aDog = gson.fromJson(toGson, Mammal.class);
}
}
An exception is thrown when I run it, can someone tell me how to fix this? 运行它时会引发异常,有人可以告诉我如何解决此异常吗?
In line 排队
Mammal aDog = gson.fromJson(toGson, Mammal.class);
you are trying to deserialize to instance of Mammal object, which cant be done because Mammal
is abstract class which means it cant be instantiated. 您正在尝试反序列化Mammal对象的实例,但是无法完成,因为Mammal
是抽象类,这意味着无法实例化。
You need either remove abstract
keyword from Mammal
class description or use non abstract class instead like Dog.class
您需要从Mammal
类描述中删除abstract
关键字,或者使用非抽象类,例如Dog.class
Mammal aDog = gson.fromJson(toGson, Dog.class);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.