cam*_*ous 6 java class jackson jackson2
必须有一种方法来创建一个JavaTypefrom String.class?
注意:该方法的输入必须 JavaType适用于我的用例,因为该值是使用TypeFactory.
/** Returns a JavaType for Map<String, valueType> **/
private static JavaType stringToJavaType(JavaType valueType) {
TypeFactory typeFactory = objectMapper.getTypeFactory();
// this does not compile, can't mix Class and JavaType
return typeFactory.constructMapType(Map.class, String.class, valueType);
}
Run Code Online (Sandbox Code Playgroud)
如果我可以回答一个相关的问题,constructMapTypeover 有constructParametricType什么好处?
Phi*_*imo 13
如果你在这里只是因为你想JavaType从一个Class对象创建一个,
那么使用ObjectMapper像这样:
JavaType javaType = objectMapper.constructType(clazz);
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
typeFactory.constructFromCanonical(String.class.getName())typeFactory.constructType(new TypeReference<String>() {})。typeFactory.constructArrayType(String.class).getContentType()。但它看起来有点像一种解决方法。SimpleType.constructUnsafe(String.class)。文档说明:核心 Jackson 类使用的方法:应用程序代码不使用:它不能正确处理超类型的检查,因此父类和实现的接口都不能通过结果类型实例访问。所以,即使有可能使用尽量避免它。