com.xiaoleilu.hutool.convert.impl.AtomicReferenceConverter Maven / Gradle / Ivy
package com.xiaoleilu.hutool.convert.impl;
import java.util.concurrent.atomic.AtomicReference;
import com.xiaoleilu.hutool.convert.AbstractConverter;
import com.xiaoleilu.hutool.convert.ConverterRegistry;
import com.xiaoleilu.hutool.util.ClassUtil;
/**
* {@link AtomicReference}转换器
*
* @author Looly
* @since 3.0.8
*/
@SuppressWarnings("rawtypes")
public class AtomicReferenceConverter extends AbstractConverter {
@Override
protected AtomicReference> convertInternal(Object value) {
//尝试将值转换为Reference泛型的类型
Object targetValue = null;
final Class> paramType = ClassUtil.getTypeArgument(AtomicReference.class);
if(null != paramType){
targetValue = ConverterRegistry.getInstance().convert(paramType, value);
}
if(null == targetValue){
targetValue = value;
}
return new AtomicReference<>(targetValue);
}
}