public class TransformUtil extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
private static Map<Field,Transform> |
ANNOTATION_CACHE |
| 构造器和说明 |
|---|
TransformUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
private static String |
capitalize(String name)
首字母大写
|
private void |
checkAnnotationOfTransformer(Annotation annotation,
Field field,
Class<?> transformerAnnotationType)
检查自定义注解
|
private Annotation |
getAnnotationOfTransformer(Transformer<Object,Annotation> transformer,
Field field,
Transform transformAnnotation)
获取转换器绑定的注解
如果是SimpleTransformer的子类,则绑定的注解默认都是@Transform
|
private String |
getOriginalFieldName(Object bean,
Field field,
Transform transform)
获取原字段名称
如果没有显示指定将自动推断
|
private Transform |
getTransformAnnotation(Field field)
获取属性上的@Transform注解,如果有衍生注解则合并相同属性
ps.这里实际缓存的是注解的代理对象
|
static Object |
readMethodInvoke(Object bean,
String fieldName)
读取属性值
|
static void |
transform(Object object)
转换对象,支持集合(Collection)或者单个bean
并直接改变对象内部属性
|
private void |
transformField(Object bean,
Field field)
翻译属性
|
private static void |
updateAnnotationProxy(Annotation annotation,
String fieldName,
Object value)
动态更新注解值,用于缓存提升性能
注意该方法仅针对spring对注解的代理有效
|
static <T> void |
writeMethodInvoke(Object bean,
String fieldName,
Class<T> parameterType,
T parameter)
给属性设值
|
public static void transform(Object object)
object - 集合或单个beanprivate void transformField(Object bean, Field field)
bean - 实例field - 需要被转换的属性(标注了@Transform的)@Nullable private Annotation getAnnotationOfTransformer(Transformer<Object,Annotation> transformer, Field field, Transform transformAnnotation)
private void checkAnnotationOfTransformer(Annotation annotation, Field field, Class<?> transformerAnnotationType)
private Transform getTransformAnnotation(Field field)
private String getOriginalFieldName(Object bean, Field field, Transform transform)
private static void updateAnnotationProxy(Annotation annotation, String fieldName, Object value)
public static Object readMethodInvoke(Object bean, String fieldName) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException
public static <T> void writeMethodInvoke(Object bean, String fieldName, Class<T> parameterType, T parameter) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException
Copyright © 2022. All rights reserved.