sty*_*972 3 java android gson ormlite deserialization
我正在为该类编写一个反序列化器ForeignCollection,它是abstract在ORMLite Android库中提供给我的.请参阅下面的代码.
public class ForeignCollectionDeserializer implements JsonDeserializer<ForeignCollectionDeserializer> {
@Override
public ForeignCollection deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
...
}
}
Run Code Online (Sandbox Code Playgroud)
我也试过实现JsonDeserializer<?>和JsonDeserialzer(没有通用类型)
我正在使用GsonBuilder.registerTypeAdapter注册解串器.
GsonBuilder gb = new GsonBuilder();
gb.registerTypeAdapter(ForeignCollection.class, new ForeignCollectionDeserializer());
Gson gson = gb.create();
Run Code Online (Sandbox Code Playgroud)
然而,registerTypeAdapter()抛出这个:
06-11 11:27:27.937: E/AndroidRuntime(15197): FATAL EXCEPTION: main
06-11 11:27:27.937: E/AndroidRuntime(15197): Process: com.myapp, PID: 15197
06-11 11:27:27.937: E/AndroidRuntime(15197): java.lang.IllegalArgumentException
06-11 11:27:27.937: E/AndroidRuntime(15197): at com.google.gson.internal.$Gson$Preconditions.checkArgument($Gson$Preconditions.java:42)
06-11 11:27:27.937: E/AndroidRuntime(15197): at com.google.gson.GsonBuilder.registerTypeAdapter(GsonBuilder.java:448)
Run Code Online (Sandbox Code Playgroud)
我正在逐步完成代码,然后从GsonBuilder下面找到有问题的部分.
public GsonBuilder registerTypeAdapter(Type type, Object typeAdapter) {
$Gson$Preconditions.checkArgument(typeAdapter instanceof JsonSerializer<?>
|| typeAdapter instanceof JsonDeserializer<?>
|| typeAdapter instanceof InstanceCreator<?>
|| typeAdapter instanceof TypeAdapter<?>);
if (typeAdapter instanceof InstanceCreator<?>) {
instanceCreators.put(type, (InstanceCreator) typeAdapter);
}
Run Code Online (Sandbox Code Playgroud)
我typeAdapter instanceof JsonDeserializer<?>在调试模式下进行了评估,发现它实际上是false
其实我已经评估了所有这些:
typeAdapter instanceof JsonDeserializertypeAdapter instanceof JsonDeserializer<ForeignCollection>typeAdapter instanceof JsonDeserializer<?>他们都是假的.
当我声明typeAdapter为一个实现Object的类型时ForeignCollectionsDeserializer,这是JsonDeserializer怎么回事?
| 归档时间: |
|
| 查看次数: |
2852 次 |
| 最近记录: |