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; } } }