【发布时间】:2011-04-12 02:20:54
【问题描述】:
我有一个要求,我必须编写一个自定义 XStream MapConverter,它只转换特定类型的地图。举个例子,我希望我的自定义转换器只使用 Map(String, Date) 地图。我需要通过覆盖 canConvert 方法来实现这一点。到目前为止,这是我编写的 canConvert 方法:
@Override
public boolean canConvert(Class clazz) {
return (!clazz.equals(Object.class) && Map.class.isAssignableFrom(clazz));
}
但这适用于所有类型的地图。由于“java.lang.Class”没有公开任何提供有关参数类型信息的方法,因此对于泛型集合,我无法在我的 canConvert 方法中获得所需的结果。
我能想到的一种解决方法是围绕 Map(String, Date) 创建一个虚拟包装类,并使用它来实现 canConvert 方法。有人可以建议在 canConvert 方法中解决此问题的更好方法吗?
【问题讨论】:
标签: generics serialization xstream