Java 如何迭代列表<;DTO>;并动态获取DTO属性值? private void writeData(HSSF表){ 对于(int i=0;i

Java 如何迭代列表<;DTO>;并动态获取DTO属性值? private void writeData(HSSF表){ 对于(int i=0;i,java,list,properties,iteration,Java,List,Properties,Iteration,我想要上面的东西 我正在创建一个excel工作表,其中的行数对应于列表中的对象数。列数对应于DTO中的属性/属性数 因为我的DTO有40多个属性,所以我不想显式地编写。有什么解决方法吗?您可以使用查找成员和/或方法 如果你真的想接纳所有会员,这就足够了。如果您需要某种选择性,您可能需要DTO作者的合作,他们是否使用了命名约定?是否有其他元数据 您可以使用反射或(更好的)API(或提供类似功能的任何东西)。最简单的用法如下所示: private void writeData(HSSFSheet s

我想要上面的东西

我正在创建一个excel工作表,其中的行数对应于列表中的对象数。列数对应于DTO中的属性/属性数

因为我的DTO有40多个属性,所以我不想显式地编写。有什么解决方法吗?

您可以使用查找成员和/或方法

如果你真的想接纳所有会员,这就足够了。如果您需要某种选择性,您可能需要DTO作者的合作,他们是否使用了命名约定?是否有其他元数据

您可以使用反射或(更好的)API(或提供类似功能的任何东西)。最简单的用法如下所示:

private void writeData(HSSFSheet sheet) {
        for (int i = 0; i < boltData.size(); i++) {
            HSSFRow row = sheet.createRow(rowCount);
            rowCount++;
            BoltDto boltDto = boltData.get(i);
            for (int j = 0; j < **${noOfattributesInMyEntity}**; j++) {
                HSSFCell cell = row.createCell(j);
                cell.setCellValue(new HSSFRichTextString(
                        (**boltDto.getXyz()**).trim()));
            }
        }
    }

你试过使用反射吗?我是DTO的作者。我有完全的控制权。
for (Object property : BeanUtils.describe(yourDto).keySet()) {
    Object value = BeanUtils.getProperty(yourDto, property.toString());
    // do whatever with the property value
}