Java Beanutils使copyproperties在不同类型的嵌套属性上工作

Java Beanutils使copyproperties在不同类型的嵌套属性上工作,java,apache-commons,apache-commons-beanutils,Java,Apache Commons,Apache Commons Beanutils,我有两个具有镜面反射属性的bean,包括不同类型的嵌套属性,即 BeanDTO { NestedBeanDTO nestedProperty; } Bean { NestedBean nestedProperty; } NestedBeanDTO { String name; } NestedBean { String name; } 现在我想要apachecommons BeanUtils.copyProperties(Bean, BeanDTO)

我有两个具有镜面反射属性的bean,包括不同类型的嵌套属性,即

BeanDTO {
    NestedBeanDTO nestedProperty;
}

Bean {
    NestedBean nestedProperty;
}

NestedBeanDTO {
    String name;
}

NestedBean {
    String name;
}
现在我想要apachecommons

BeanUtils.copyProperties(Bean, BeanDTO) 
复制所有bean的属性,包括嵌套的属性,因为内部也有相同的属性,但我遇到了以下错误:

argument type mismatch - had objects of type "NestedBeanDTO" but expected signature "NestedBean"
据我所知,可以通过ConverterUtils寄存器使用BeanutilsBean类配置转换器行为,但我不知道如何配置

有什么建议吗

编辑

使用ConverterUtils.register()解决:


将使用NestedBean.name自动解析NestedBeanDTO.name属性

您是否可以添加代码您正在尝试的内容我无法复制此问题/我已添加一些代码并更新了错误详细信息
private static class CustomBeanConverter implements Converter {

    @Override
    public <T> T convert(Class<T> aClass, Object o) {
        Object output = null;
        try {
            output = aClass.getDeclaredConstructor().newInstance();
            BeanUtils.copyProperties(output, o);
        } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException | InstantiationException e) {
            e.printStackTrace();
        }
        return (T)output;
    }
}
BeanUtilsBean.getInstance().getConvertUtils().register(new CustomBeanConverter(), NestedBean.class);

BeanUtils.copyProperties(Bean, BeanDTO)