我正在使用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/

10-09 16:02