java 如何将List<Object[]>转换成List<实体>?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 如何将List<Object[]>转换成List<实体>?相关的知识,希望对你有一定的参考价值。

顺便提下,List<Object[]>是执行方法返回的,方法类已经打包,而且不是同一个项目下。
或者说怎么取出List<Object[]>里面的数据?

1、首先创建一个类,如图所示。

2、创建一个主方法,如图所示main方法。

3、让我们声明一个List<Map>集合,如图所示。

4、接着我们声明一个Map集合,如图所示。

5、通过for循环来遍历List,如图。

6、我们在每一次循环中拿出list中相应的map。

参考技术A

代码如下:

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、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

参考技术B 1,请问,你的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++)
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啊,然后就给他转值啊!
你这种 应该用第二种方法, 没有通过,应该是赋值时属性类型不匹配,你在调下赋值属性时的转换

本回答被提问者和网友采纳
参考技术C 把Object[]作为一个新类的属性。比如List<MyLei>,然后Object[]是MyLei的一个属性。 参考技术D List<Object[]>里面如果有数据,是个什么样的,给个样例追问

看到图片没?图片中的list里的数据就是

追答

看 wujunlongsy回答的就挺好,应该是第二种方法

以上是关于java 如何将List<Object[]>转换成List<实体>?的主要内容,如果未能解决你的问题,请参考以下文章

java List<Object[]> 如何数据去重

如何将map<string list<>>转换成城map<string,object>

java list<object>如何去重

如何将两个List<Map<String,Object>>合并为一个

list<String>如何转化为Map<String, Object>,list<EmpVO>如何转化为Map<String, Object>

java 从数据库中返回来的数据list<Map<String ,Object>> 做拼接处理