java 如何将List<Object[]>转换成List<实体>?
或者说怎么取出List<Object[]>里面的数据? 展开
代码如下:
private <T> List<Object[]> getFieldValueByFieldName(List<T> list,String [] fieldArr) {
List<Object[]> objArrList = new ArrayList<Object[]>();
Object[] objArr = null;
for(T t :list){
objArr = new Object[fieldArr.length];
for (int i = 0; i < fieldArr.length; i++) {
try {
Field field = t.getClass().getField(fieldArr[i]);
objArr[i] = field.get(t);
} catch (Exception e) {
e.printStackTrace();
}
}
objArrList.add(objArr);
}
return objArrList;
}
扩展资料
list中可以添加任何对象,例如:
class Person{
}
上面定义了一个Person类,下面看好如何使用List
Person p1=new Person();
Person p2=new Person();
List list=new ArrayList();
list.add(p1);
list.add(p2);//这里是将对象加入到list中
for(int i=0;i
补充:Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
List<User> newList=new ArrayList<User>(); //实体类
List<Object[]> list=new ArrayList<Object[]>();
for(int i=0;i<list.size();i++){
Object[] objects=list.get(i);
if(objects.length>0){
for(int j=0;i<objects.length;j++){
newList.add((User)objects[j]); //强制转换
}
}
}
2.如果你Object[] 里面的值是实体类的属性,
那么也可以用上面的思路:
List<User> newList=new ArrayList<User>(); //实体类
List<Object[]> list=new ArrayList<Object[]>();
for(int i=0;i<list.size();i++){
Object[] objects=list.get(i);
if(objects.length>0){
for(int j=0;i<objects.length;j++){
User user=new User();
user.setId((Integer)objects[j]); //把值赋给属性,并强制转换
}
}
}
首先,List list中本来就有值了的,干嘛还要new出一个来?new出一个新的那他的size不是为0的吗?其实,我用过类似你的这种方法,我是直接遍历List list再add到new出来的实体类中而已,不过,编译不通过.
你不是将List转换成List么?
new 一个用来装转换的值,
new 出来的size是为0啊,然后就给他转值啊!
你这种 应该用第二种方法, 没有通过,应该是赋值时属性类型不匹配,你在调下赋值属性时的转换
看到图片没?图片中的list里的数据就是
看 wujunlongsy回答的就挺好,应该是第二种方法