手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

运用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
© 手抄报圈