Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通用接口集合_Java_Generics_Serialization_Deserialization_Gson - Fatal编程技术网

Java 通用接口集合

Java 通用接口集合,java,generics,serialization,deserialization,gson,Java,Generics,Serialization,Deserialization,Gson,我使用可序列化的以下方法作为自定义接口: private <T extends Synchronizable> Collection<T> deserialize(String json, Class<T> type) { Type collectionType = new TypeToken<ArrayList<T>>(){}.getType(); return new Gson().fromJson(json, collec

我使用
可序列化
的以下方法作为自定义接口:

private <T extends Synchronizable> Collection<T> deserialize(String json, Class<T> type) {
  Type collectionType = new TypeToken<ArrayList<T>>(){}.getType();
  return new Gson().fromJson(json, collectionType);
}
私有集合反序列化(字符串json,类类型){
Type collectionType=new-TypeToken(){}.getType();
返回新的Gson().fromJson(json,collectionType);
}
此方法无法正常工作,因为Gson期望类型标记为特定的泛型类型,例如
type collectionType=new-TypeToken(){}.getType()(而
实现
可序列化


有人知道这个问题的解决方案吗,或者我不能在这里使用通用方法,这会很尴尬。

您应该使用您在那里接受的
类型
参数,如:

  private <T extends Synchronizable> Collection<T> deserialize(String json, Class<T> type){
        Type collectionType = new TypeToken<ArrayList<Class<T>>>(){}.getType();
         return new Gson().fromJson(json, collectionType);
  }
私有集合反序列化(字符串json,类类型){
Type collectionType=new-TypeToken(){}.getType();
返回新的Gson().fromJson(json,collectionType);
}

由于
类型
无法解析为类型而无法编译的
。@Benny然后只使用原始
。请参阅我的更新。gson将尝试反序列化类类型。您的问题不清楚。指导