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将尝试反序列化类类型。您的问题不清楚。指导