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;
                }
            }
        }
  • 相关阅读:
    HTTP Header 详解
    面试题----网页/应用访问慢突然变慢,如何定位问题
    PHP实现斐波那契数列
    常见的HTTP返回状态值
    通过实例理解单列索引、多列索引以及最左前缀原则
    Btree索引和Hash索引
    遍历和删除文件夹
    面试题之----禁掉cookie的session使用方案
    面试题之----写个函数来解决多线程同时读写一个文件的问题
    heredoc
  • 原文地址:https://www.cnblogs.com/puke/p/7228460.html
Copyright © 2011-2022 走看看