要将List<?>中的元素转换为实体,可以通过反射来实现。以下是一个示例代码:

public static <T> List<T> convertList(List<?> list, Class<T> clazz) {
    List<T> result = new ArrayList<>();
    for (Object obj : list) {
        try {
            T entity = clazz.getDeclaredConstructor().newInstance();
            BeanUtils.copyProperties(obj, entity); // 使用BeanUtils将属性值拷贝到实体对象中
            result.add(entity);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return result;
}

使用示例:

List<?> list = ...; // 未知类型的列表
Class<?> clazz = ...; // 实体类的Class对象

List<MyEntity> entities = convertList(list, MyEntity.class);

请注意,上述示例中使用了BeanUtils.copyProperties()方法来拷贝属性值,这需要引入Apache Commons BeanUtils库。如果你不想使用该库,可以使用其他方式来拷贝属性值,例如手动设置属性值或使用其他第三方库,如ModelMapper或Dozer

java8 List结合Class转换为实体Po是未知的对象类型不是强转Po

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

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