ConversionService接口
2019-03-16 本文已影响0人
王勇1024
为了统一调用Converter进行类型转换,spring为我们提供了一个ConversionService接口。通过实现这个接口我们可以实现自己的Converter调用逻辑。我们先来看一下ConversionService接口的定义:
package org.springframework.core.convert;
import org.springframework.lang.Nullable;
/**
* 类型转换服务
*/
public interface ConversionService {
/**
* 是否支持原类型到目标类型的转换
*/
boolean canConvert(@Nullable Class<?> sourceType, Class<?> targetType);
/**
* 是否支持原类型到目标类型的转换
*/
boolean canConvert(@Nullable TypeDescriptor sourceType, TypeDescriptor targetType);
/**
* 将source实例转成目标类型,如果转换过程出错,抛出 ConversionException,
* 如果 targetType 为null,抛出 IllegalArgumentException
*/
@Nullable
<T> T convert(@Nullable Object source, Class<T> targetType);
/**
* 将source实例转成目标类型,如果转换过程出错,抛出 ConversionException,
* 如果 targetType 为null,抛出 IllegalArgumentException
*/
@Nullable
Object convert(@Nullable Object source, @Nullable TypeDescriptor sourceType, TypeDescriptor targetType);
}
我们可以看到ConversionService接口里面定义了两个canConvert方法和两个convert方法,canConvert方法用于判断当前的ConversionService是否能够对原类型和目标类型进行转换,convert方法则是用于进行类型转换的。上面出现的参数类型TypeDescriptor是对于一种类型的封装,里面包含该种类型的值、实际类型等等信息。
参考文章:https://www.cnblogs.com/diyunpeng/p/6366386.html