运用ConverterFactory和运用GenericConverter

 时间:2024-10-15 19:52:37

1、当需要集中整个类层次结构的转换逻辑时(例如,从转换String为Enum对象时),您可以实现ConverterFactory,如以下示例所示:

运用ConverterFactory和运用GenericConverter

2、参数化S为要转换的类型,R为定义可转换为的类范围的基本类型。然后实现getConverter(Class<T>),其中T是R的子类。

运用ConverterFactory和运用GenericConverter

3、如下StringToEnumConverterFactory作为一个例子:

运用ConverterFactory和运用GenericConverter

4、需要复杂的Converter实现时,请考虑使用该GenericConverter接口。使用更灵活但不太强类型的签名Converter,GenericConverter支持在多个源类型和目标类型之间进行转换。此外,GenericConverter还可以在实现转换逻辑时使用可用的源和目标字段上下文。这样的上下文允许类型转换由字段注释或在字段签名上声明的通用信息驱动。

5、以下清单显示了以下接口定义GenericConverter:

运用ConverterFactory和运用GenericConverter

6、要实现aGenericConverter,请getConvertibleTypes()返回支持的源→目标类型对。然后实现convert(Object, TypeDescriptor, TypeDescriptor)包含转换逻辑。源TypeDescriptor提供对包含要转换的值的源字段的访问。目标TypeDescriptor提供对要设置转换值的目标字段的访问。

7、一个很好的例子GenericConverter是在Java数组和集合之间进行转换的转换器。这样一个ArrayToCollectionConverter内省声明了目标集合类型来解析集合的元素类型。这样,在目标字段上设置集合之前,可以将源数组中的每个元素转换为集合元素类型。

运用ConverterFactory和运用GenericConverter

8、因为GenericConverter是一个更复杂的SPI接口,所以只有在需要时才应该使用它。支持Converter或ConverterFactory基本类型转换需求。

运用ConverterFactory和运用GenericConverter
  • 介绍/容留卖淫案件嫌疑人讯问单独设问的细节
  • 松下NN-GF539H微波炉使用说明书
  • APS留德人员审核部的主要工作是什么?
  • FIFA OL3中国国家队球员推荐(门将篇)
  • 海马玩模拟器Droid4X 数据的备份与还原
  • 热门搜索
    怎么给电脑设置开机密码 手机银行怎么开通 对号怎么打 上官婉儿怎么连招飞天 微信语音怎么转发 颈椎痛怎么办快速缓解疼痛 隐形门的做法 白事封包怎么写 牛肉包子馅的做法 红枣粥的做法