在 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);

这样就可以将未知的对象类型转换为实体对象,而不需要进行强制类型转换。注意,这种方式需要保证未知对象类型的属性与实体对象的属性一致,否则可能会出现类型转换异常。

Java8 泛型与反射:将未知类型 Class 对象转换为实体对象

原文地址: https://www.cveoy.top/t/topic/qnI9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录