我正在尝试创建CSV消息转换器以与Spring
消息转换器一起使用,但是当support(Class<?> clazz)
类型为{{时,我无法配置clazz
方法1}}。基本上,我的Collection
端点是直接返回REST
个对象,而不是包装在另一个对象中。
使用反射,由于Collection
的类型,我唯一能得到的是Collection
,这显然并没有给我太多帮助。
我已经手动尝试过,也尝试过使用辅助工具,例如E
中的TypeUtils.genericArrayType(clazz)
。
我能想到的唯一解决方法是始终返回true并验证Apache Commons
方法内的类型。
这是writeInternal(Object o, HttpOutputMessage message)
类的实现中的一个错误,该类可以检索端点的返回类型,或者我是否错过了什么?
顺便说一句,这是在Spring实现中返回类型的方法吗?
AbstractMessageConverterMethodProcessor
答案 0 :(得分:0)
好吧,我想我找到了答案。基本上是Java's
type erasure
在运行时删除了Collection
类型信息。还有另一个抽象类AbstractGenericHttpMessageConverter
,可让我实现public boolean canWrite(Type type, Class<?> clazz, MediaType mediaType)
和protected void writeInternal(Object o, Type type, HttpOutputMessage outputMessage)
方法,这些方法包含一个Type
自变量,可用于确定精确的Class
宾语。