我正在使用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);
}
}
运行时会抛出异常,有人可以告诉我如何解决这个问题吗?
答案 0 :(得分:1)
排队
Mammal aDog = gson.fromJson(toGson, Mammal.class);
你试图反序列化为Mammal对象的实例,因为Mammal
是抽象类,这意味着它无法实例化,因此无法完成。
您需要从abstract
类描述中删除Mammal
关键字,或使用非抽象类,而不是Dog.class
Mammal aDog = gson.fromJson(toGson, Dog.class);