我正在使用 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
是抽象类,这意味着它无法实例化。
您需要从 Mammal
类描述中删除 abstract
关键字,或者使用非抽象类,例如 Dog.class
Mammal aDog = gson.fromJson(toGson, Dog.class);
关于Java JSON反序列化继承类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18433525/