Object转换List

简介: Object转换List「Map「String,Object」」

使用场景
使用的时候IDEA会提示警告 说未检查类型.
解决办法

使用@SuperWarning({“unchecked”})进行压制
写个工具类进行转换

写的时候参考了我的 Object 转换 List的写法,只是说在处理o的时候再次进行了转换获得每个key和value.
写完Object转换List后大概想了1个多小时才想到这个方式, 真的佩服自己的愚蠢
public static List> objConvertListMap(Object obj) throws IllegalAccessException {
List> result = new ArrayList<>();
if (obj instanceof List<?>){
for (Object o : (List<?>) obj) {
Map map = new HashMap<>(16);
Class<?> clazz = o.getClass();
for (Field field : clazz.getDeclaredFields()) {
field.setAccessible(true);
String key = field.getName();
Object value = field.get(key);
if (value == null){
value = "";
}
map.put(key,value);
}
result.add(map);
}
return result;
}
return null;
}

public static <V> List<Map<String,V>> objConvertListMap(Object obj, Class<V> vClass) throws IllegalAccessException {
    List<Map<String, V>> result = new ArrayList<>();
    if (obj instanceof List<?>) {
        for (Object o : (List<?>) obj) {
            Map<String, V> map = new HashMap<>(16);
            Class<?> oClass = o.getClass();
            for (Field field : oClass.getDeclaredFields()) {
                field.setAccessible(true);
                String key = field.getName();
                Object value = field.get(key);
                if (value == null) {
                    value = "";
                }
                map.put(key, vClass.cast(value));
            }
            result.add(map);
        }
        return result;
    }
    return null;
}

这样就不会局限在转换到List>这一种类型上了.
可以转换成List>上等,进行泛型转换
虽然多了一个参数,但是可以重载啊
感觉field.get(key) 这里处理的不是很好,如果有更好的办法可以留言
public static List> castListMap(Object obj, Class kCalzz, Class vCalzz) {
List> result = new ArrayList<>();
if (obj instanceof List<?>) {
for (Object mapObj : (List<?>) obj) {
if (mapObj instanceof Map<?, ?>) {
Map map = new HashMap<>(16);
for (Map.Entry<?, ?> entry : ((Map<?, ?>) mapObj).entrySet()) {
map.put(kCalzz.cast(entry.getKey()), vCalzz.cast(entry.getValue()));
}
result.add(map);
}
}
return result;
}
return null;
}

相关文章
|
安全 Java 编译器
解决Java中的“Unchecked cast: java.lang.Object to java.util.List”问题
解决Java中的“Unchecked cast: java.lang.Object to java.util.List”问题
717 0
|
4月前
|
开发者 Python
【Python】已解决:TypeError: descriptor ‘index‘ for ‘list‘ objects doesn‘t apply to a ‘str‘ object
【Python】已解决:TypeError: descriptor ‘index‘ for ‘list‘ objects doesn‘t apply to a ‘str‘ object
119 0
|
6月前
|
JavaScript
Vue报错 Invalid default value for prop “list“: Props with type Object/Array must use a factory
Vue报错 Invalid default value for prop “list“: Props with type Object/Array must use a factory
320 0
|
5月前
|
Python
【已解决】AttributeError: ‘Index‘ object has no attribute ‘to_list‘
【已解决】AttributeError: ‘Index‘ object has no attribute ‘to_list‘
|
5月前
|
存储 NoSQL Redis
Redis第四弹,Redis实现list时候做出的优化ziplist(压缩链表,元素少的情况),可更好的节省空间list——(内部编码:quicklist)Object encoding
Redis第四弹,Redis实现list时候做出的优化ziplist(压缩链表,元素少的情况),可更好的节省空间list——(内部编码:quicklist)Object encoding
|
6月前
|
JSON 数据格式 Python
TypeError the JSON object must be str, bytes or bytearray, not ‘list‘
TypeError the JSON object must be str, bytes or bytearray, not ‘list‘
177 1
|
6月前
|
Java 数据库连接 mybatis
mybatis返回结果为List<Map<String, Object>>的写法
mybatis返回结果为List<Map<String, Object>>的写法
592 1
List<Map<String, Object>>,Map<String,List<Map<String, Object>>>多方式循环遍历
List<Map<String, Object>>,Map<String,List<Map<String, Object>>>多方式循环遍历
125 0
AttributeError: ‘list‘ object has no attribute ‘ndim‘
AttributeError: ‘list‘ object has no attribute ‘ndim‘
191 0
|
安全 fastjson Java
Unchecked cast: java.lang.Object to java.util.List问题的解决
Unchecked cast: java.lang.Object to java.util.List问题的解决
2100 0
Unchecked cast: java.lang.Object to java.util.List问题的解决