相关疑难解决方法(0)

如何处理多态的反序列化?

我有一个类:

public class Barn {
    String type;
    Animal animal;
}

public class Horse extends Animal {
}

public class Cow extends Animal {
}
Run Code Online (Sandbox Code Playgroud)

我想序列化它们的列表:

List<Barn> barns = new ArrayList<Barn>();

Barn barn1 = new Barn();
barn1.setType("horse");
barn1.setAnimal(new Horse());
barns.add(barn1);

Barn barn2 = new Barn();
barn2.setType("cow");
barn2.setAnimal(new Cow());
barns.add(barn2);

...

Group<Barn> barns = gson.fromJson(serialized);   
Run Code Online (Sandbox Code Playgroud)

当我序列化时,Animal属性的类型信息将丢失.有没有办法我可以以某种方式安装解析器监听器,以便我可以提供正确的类来反序列化,因为遇到列表中的每个元素?这就是手动提供描述类类型的字符串的想法.

谢谢

java gson

27
推荐指数
3
解决办法
1万
查看次数

如何在Gson中实现TypeAdapterFactory?

如何在Gson中实现TypeAdapterFactory类型?

创建的主要方法是通用的.为什么?

注册方法registerTypeAdapterFactory()不接收类型参数.那么,如何Gson知道工厂处理哪些类?

我应该为多个类实现一个工厂,还是可以为多个类实现一个工厂?

如果我为多个类实现一个工厂,那么在域外类型参数的情况下我应该返回什么?

java serialization json gson deserialization

23
推荐指数
1
解决办法
2万
查看次数

标签 统计

gson ×2

java ×2

deserialization ×1

json ×1

serialization ×1