Spring

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

上一篇 下一篇

猜你喜欢

热点阅读