必须有一种方法可以从JavaType
创建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);
}
如果我想回答一个相关的问题,constructMapType
比constructParametricType
有什么优势?
您可以通过:
typeFactory.constructFromCanonical(String.class.getName())
typeFactory.constructType(new TypeReference<String>() {})
。typeFactory.constructArrayType(String.class).getContentType()
。但它看起来有点像变通办法。SimpleType.constructUnsafe(String.class)
。从文档中注意:杰克逊核心类使用的方法:不能由应用程序代码使用:它无法正确处理超类型的检查,因此父类和已实现的接口都无法通过生成的类型实例进行访问。