37 lines
750 B
Java
37 lines
750 B
Java
package com.imyeyu.config;
|
|
|
|
import java.lang.reflect.Field;
|
|
|
|
/**
|
|
* @author 夜雨
|
|
* @version 2024-04-12 00:44
|
|
*/
|
|
public abstract class BaseConverter<T, K> {
|
|
|
|
@SuppressWarnings("unchecked")
|
|
K serialize0(Field field, Object t) {
|
|
return serialize(field, (T) t);
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
T deserialize0(Field field, Object data) {
|
|
return deserialize(field, (K) data);
|
|
}
|
|
|
|
/**
|
|
* 当组件值需要写入配置时的转换,默认直接 toString
|
|
*
|
|
* @param t 组件值类型
|
|
* @return 配置值
|
|
*/
|
|
protected abstract K serialize(Field field, T t);
|
|
|
|
/**
|
|
* 当获取配置并即将设置到组件时调用
|
|
*
|
|
* @param data 配置值
|
|
* @return 返回值
|
|
*/
|
|
protected abstract T deserialize(Field field, K data);
|
|
}
|