假设有一个抽象类,比如说
例如,我得到了一个
A
,还有两个非抽象的子类,分别是A1
和A2
。我想使用GSON库将它们从json格式中“反序列化”出来。例如,我得到了一个
A
对象的数组。int n = ...;
A[] list = new A[n];
A[0] = new A1(....);
A[1] = new A2(....);
...
有人将其转换为JSON字符串如下:
String json = (new Gson()).toJson(list);
最后,如果我尝试按以下方式反序列化
A[] deserializedList = (new Gson()).fromJson(json, A[].class);
然后我遇到了一个错误,因为GSON默认的反序列化程序找到了一个抽象类(即A
),但它无法猜测子类类型。
我该如何解决这个问题?
PS:我读过自定义反序列化程序,但我不知道在这种情况下要如何使用它们。