Java8 泛型与反射:将未知类型 Class 对象转换为实体对象
在 Java 中,可以使用泛型和反射结合,将 Class 对象转换为实体对象,即使实体对象的类型未知。以下是一个示例代码:
public class EntityConverter {
public static <T> T convert(Class<T> clazz, Object object) {
try {
T entity = clazz.getDeclaredConstructor().newInstance();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
Object value = field.get(object);
field.set(entity, value);
}
return entity;
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
e.printStackTrace();
}
return null;
}
}
使用时,可以通过调用EntityConverter.convert()方法将Class对象转换为实体对象。例如:
Class<?> poClass = ...; // 获取到未知的对象类型的Class对象
Object poObject = ...; // 未知对象类型的实例
// 转换为实体对象
EntityConverter.convert(poClass, poObject);
这样就可以将未知的对象类型转换为实体对象,而不需要进行强制类型转换。注意,这种方式需要保证未知对象类型的属性与实体对象的属性一致,否则可能会出现类型转换异常。
原文地址: https://www.cveoy.top/t/topic/qnI9 著作权归作者所有。请勿转载和采集!