使用反射从未知的list中取值

今天,我拿到了一个未知的List,想要拆开一看,可是其内部是一个个object,几番强转无用,最后我决定利用反射取值,果然很快就拿到了我想要的,接下来,(由于闲的蛋疼)我把代码块封装成一个工具方法,大家复制调用即可,不必在写代码了。实现功能如下:把一个未知的List集合塞给方法,返回值是一个String,使用Json解析即可得到一个对象集合,对象内部value均为String,你就可以随心所欲的转换了:

public static String getListObjValue(List list) throws Exception {

        StringBuilder result = new StringBuilder();
        result.append("[");
        for (int i = 0; i < list.size(); i++) {
            result.append("{");
            Field[] fields = list.get(i).getClass().getDeclaredFields();
            Object object = list.get(i);
            for (int j = 0; j < fields.length; j++) {
                fields[j].setAccessible(true);
                result.append('"'+fields[j].getName()+'"'+':'+'"'+fields[j].get(object)+'"');
                if (j

不要计较内容,up可是用一个个char拼接起来的,捂脸笑
下面测一下,假装我有一个UserPO,里面只有两个字段

		List aa = new ArrayList<>();
        UserPO user = new UserPO();
        user.setId(1);
        user.setUserId("ddd1");
        UserPO user1 = new UserPO();
        user1.setId(2);
        user1.setUserId("ddd2");
        aa.add(user);
        aa.add(user1);

        List bb = aa;
        String str = ClassUtil.getListObjValue(bb);
        System.out.println("**************");
        System.out.println(str);

结果为
在这里插入图片描述
over ><

你可能感兴趣的:(Java)