zoukankan      html  css  js  c++  java
  • java 各类型转换 convert

    1、Object TO List<?>

      java中如果需要将一个object转成list,大部分人会直接使用强制类型转换:(List<String>) obj这样。这样强制转换编译会提示Unchecked cast: 'java.lang.Object' to 'java.util.List<java.lang.String>',编译器的意思该强制类型转换并未做类型校验,强制转换并不安全,可能会抛出异常导致程序崩溃。在很多博客中有人会建议用@SuppressWarnings("unchecked")解决编译器警告,这种方法是极为不妥的,因为它只是用来告诉编译器忽略警告,而警告却实实在在的存在。

     这里提供一种公共方法如下:

    public static <T> List<T> castList(Object obj, Class<T> clazz) {
        List<T> result = new ArrayList<T>();
        if(obj instanceof List<?>) {
            for (Object o : (List<?>) obj) {
                result.add(clazz.cast(o));
            }
            return result;
        }
        return null;
    }

    2、Object TO Map

      可以使用 jackson 来进行转换

      首先 pom 中引入对应的包

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.6.3</version>
    </dependency>

      直接上测试案例:

    import com.fasterxml.jackson.databind.ObjectMapper;
    import java.util.Arrays;
    import java.util.Map;
    
    public class ObjectToMapExample {
    
        public static void main(String[] args) {
    
            ObjectMapper oMapper = new ObjectMapper();
    
            Student obj = new Student();
            obj.setName("mkyong");
            obj.setAge(34);
            obj.setSkills(Arrays.asList("java","node"));
    
            // object -> Map
            Map<String, Object> map = oMapper.convertValue(obj, Map.class);
            System.out.println(map);
        }
    }
  • 相关阅读:
    start tag, end tag issues in IE7, particularly in xslt transformation
    用SandCastle为注释生成chm文档
    Firebug
    架构的重点
    Linux Shell常用技巧(十) 管道组合
    Linux JDK升级
    Linux Shell常用技巧(十二) Shell编程
    Packet Tracer 5.0实验(一) 交换机的基本配置与管理
    Linux Shell常用技巧(六) sort uniq tar split
    Linux Shell常用技巧(二) grep
  • 原文地址:https://www.cnblogs.com/liang1101/p/14788056.html
Copyright © 2011-2022 走看看