我正在使用Gson反序列化从抽象类继承的类。
这是我的代码:
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);
}
}
运行它时会引发异常,有人可以告诉我如何解决此异常吗?
最佳答案
排队
Mammal aDog = gson.fromJson(toGson, Mammal.class);
您正在尝试反序列化Mammal对象的实例,这不能完成,因为
Mammal
是抽象类,这意味着它不能被实例化。您需要从
abstract
类描述中删除Mammal
关键字,或者使用非抽象类,例如Dog.class
Mammal aDog = gson.fromJson(toGson, Dog.class);
关于java - Java JSON反序列化继承类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18433525/