<T> 无法解析为类型?
<T> cannot be resolved to a type?
我想使用 jackson json 库将 json 字符串转换为 List<Someclass>
。
public static List<T> toList(String json, Class<T> type, ObjectMapperProperties objectMapperProperties){
ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper(objectMapperProperties);
try {
return objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, type));
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
所以如果我将 Attribute.class
作为 type
传递,那么它必须 return 一个 List<Attribute>
。
但是,这给了我一个编译时错误
T cannot be resolved to a type
我想我在这里不清楚泛型部分。感谢任何帮助。
您需要先在通用方法中声明 T
,在您的情况下为:
public static <T> List<T> toList(String json, Class<T> type, ObjectMapperProperties objectMapperProperties)
有关更多信息,请查看 oracle 文档中的通用方法:
https://docs.oracle.com/javase/tutorial/extra/generics/methods.html
我想使用 jackson json 库将 json 字符串转换为 List<Someclass>
。
public static List<T> toList(String json, Class<T> type, ObjectMapperProperties objectMapperProperties){
ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper(objectMapperProperties);
try {
return objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, type));
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
所以如果我将 Attribute.class
作为 type
传递,那么它必须 return 一个 List<Attribute>
。
但是,这给了我一个编译时错误
T cannot be resolved to a type
我想我在这里不清楚泛型部分。感谢任何帮助。
您需要先在通用方法中声明 T
,在您的情况下为:
public static <T> List<T> toList(String json, Class<T> type, ObjectMapperProperties objectMapperProperties)
有关更多信息,请查看 oracle 文档中的通用方法:
https://docs.oracle.com/javase/tutorial/extra/generics/methods.html