package com.dounine.corgi.jpa.utils; import com.alibaba.druid.sql.visitor.functions.Char; import com.dounine.corgi.jpa.enums.DataType; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; /** * Created by lgq on 16-10-6. * java 基础类型转换工具类 */ public class PrimitiveUtil { public static final Class[] PRIMITIVES = new Class[]{ String.class, Integer.class, Long.class, Char.class, Double.class, Float.class, Boolean.class, LocalDate.class, LocalDateTime.class, LocalTime.class }; public static Class switchType(DataType type) { Class clazz = null; for(Class zz :PRIMITIVES){ if((type.name()).equalsIgnoreCase(zz.getSimpleName())){ clazz = zz; break; } } clazz = clazz==null?String.class:clazz; return clazz; } /** * 类型转换成对应类型 * @param type * @param values * @return */ public static Object[] convertValuesByType(String[] values,DataType type){ int values_length=values.length; Object[] result = new Object[values_length]; for(int i=0;i<values_length;i++){ switch (type){ case STRING:result[i] = values[i]; break; case INT:result[i] = Integer.parseInt(values[i]); break; case FLOAT:result[i] = Float.parseFloat(values[i]); break; case CHAR:result[i] = values[i].charAt(0); break; case DOUBLE:result[i] = Double.parseDouble(values[i]); break; case BOOLEAN:result[i] = Integer.parseInt(values[i]); break; case LONG:result[i] = Long.parseLong(values[i]); break; case LOCALDATE:result[i] = LocalDate.parse(values[i]); break; case LOCALTIME:result[i] = LocalTime.parse(values[i]); break; case LOCALDATETIME:result[i] = LocalDateTime.parse(values[i]); break; default: result[i] = values[i]; } } return result; } }