最近在做一个项目,表头数量不确定,动态的增加或者减少。考虑到在数据库做行转列可能性能有点差,就转到Java中转换。
数据库中展示如下
image
后台代码实现
public List convert(Class clazz,List list){
List result;
Field[] fields = clazz.getDeclaredFields();
result = new ArrayList<>(fields.length);
for (int i = 0; i < fields.length; i++) {
result.add(new ArrayList());
}
for (T t : list) {
for (int i = 0; i < fields.length; i++) {
List l = result.get(i);
Field field = fields[i];
field.setAccessible(true);
try {
l.add(field.get(t));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
return result;