zoukankan      html  css  js  c++  java
  • java Object转换成指定的类型

    java Object转换成指定的类型

     /**
         * Object转成指定的类型
         * @param obj
         * @param type
         * @param <T>
         * @return
         */
        public static<T> T convert(Object obj, Class<T> type) {
            if (obj != null && StringUtils.isNotBlank(obj.toString())) {
                if (type.equals(Integer.class)||type.equals(int.class)) {
                    return (T)new Integer(obj.toString());
                } else if (type.equals(Long.class)||type.equals(long.class)) {
                    return (T)new Long(obj.toString());
                } else if (type.equals(Boolean.class)||type.equals(boolean.class)) {
                    return (T) new Boolean(obj.toString());
                } else if (type.equals(Short.class)||type.equals(short.class)) {
                    return (T) new Short(obj.toString());
                } else if (type.equals(Float.class)||type.equals(float.class)) {
                    return (T) new Float(obj.toString());
                } else if (type.equals(Double.class)||type.equals(double.class)) {
                    return (T) new Double(obj.toString());
                } else if (type.equals(Byte.class)||type.equals(byte.class)) {
                    return (T) new Byte(obj.toString());
                } else if (type.equals(Character.class)||type.equals(char.class)) {
                    return (T)new Character(obj.toString().charAt(0));
                } else if (type.equals(String.class)) {
                    return (T) obj;
                } else if (type.equals(BigDecimal.class)) {
                    return (T) new BigDecimal(obj.toString());
                } else if (type.equals(LocalDateTime.class)) {
                    //DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                    return (T) LocalDateTime.parse(obj.toString());
                } else if (type.equals(Date.class)) {
                    try
                    {
                        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
                        return (T) formatter.parse(obj.toString());
                    }
                    catch (ParseException e)
                    {
                       throw new RuntimeException(e.getMessage());
                    }
    
                }else{
                    return null;
                }
            } else {
                if (type.equals(int.class)) {
                    return (T)new Integer(0);
                } else if (type.equals(long.class)) {
                    return (T)new Long(0L);
                } else if (type.equals(boolean.class)) {
                    return (T)new Boolean(false);
                } else if (type.equals(short.class)) {
                    return (T)new Short("0");
                } else if (type.equals(float.class)) {
                    return (T) new Float(0.0);
                } else if (type.equals(double.class)) {
                    return (T) new Double(0.0);
                } else if (type.equals(byte.class)) {
                    return (T) new Byte("0");
                } else if (type.equals(char.class)) {
                    return (T) new Character('u0000');
                }else {
                    return null;
                }
            }
        }
  • 相关阅读:
    leetcode 15. 三数之和
    leetcode 168. Excel表列名称
    142. 环形链表 II
    144. 二叉树的前序遍历(非递归)
    415. 字符串相加
    剑指 Offer 31. 栈的压入、弹出序列
    剑指 Offer 27. 二叉树的镜像
    剑指 Offer 29. 顺时针打印矩阵
    剑指 Offer 10- II. 青蛙跳台阶问题
    VBA 实现excel单元格多选
  • 原文地址:https://www.cnblogs.com/puke/p/7228460.html
Copyright © 2011-2022 走看看