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()));
}
}
}
我想要上面的东西。
我正在创建一个excel表,其中行数对应于List中的对象数。列数对应于DTO中的属性/属性数。
由于我的DTO有超过40个属性,我不想明确写。有什么工作吗?
答案 0 :(得分:2)
您可以使用反射或(更好)commons-beanutils API(或提供类似功能的任何内容)。最简单的用法如下:
for (Object property : BeanUtils.describe(yourDto).keySet()) {
Object value = BeanUtils.getProperty(yourDto, property.toString());
// do whatever with the property value
}
答案 1 :(得分:0)
您可以使用reflection APIs查找成员和/或方法。
如果你真的想要接纳所有成员,这可能就足够了。如果您需要一些选择性之王,您可能需要DTO作者的合作,他们是否使用命名约定?还有其他元数据吗?