package com.vci.ubcs.starter.web.util; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.Date; import java.util.HashMap; import java.util.Map; public class ClassUtil { private static final Map, Class> primitiveMap = new HashMap(9); public ClassUtil() { } public static boolean isPrimitive(Class clazz) { return primitiveMap.containsKey(clazz) ? true : clazz.isPrimitive(); } public static Class getElementType(Class tartget, String fieldName) { Class elementTypeClass = null; try { Type type = VciBaseUtil.getFieldForObject(fieldName, tartget).getGenericType(); ParameterizedType t = (ParameterizedType)type; String classStr = t.getActualTypeArguments()[0].toString().replace("class ", ""); if (classStr.contains("<")) { classStr = classStr.substring(classStr.lastIndexOf("<") + 1, classStr.indexOf(">")); } elementTypeClass = Thread.currentThread().getContextClassLoader().loadClass(classStr); return elementTypeClass; } catch (SecurityException | ClassNotFoundException var6) { throw new RuntimeException("get fieldName[" + fieldName + "] error", var6); } } static { primitiveMap.put(String.class, String.class); primitiveMap.put(Boolean.class, Boolean.TYPE); primitiveMap.put(Byte.class, Byte.TYPE); primitiveMap.put(Character.class, Character.TYPE); primitiveMap.put(Double.class, Double.TYPE); primitiveMap.put(Float.class, Float.TYPE); primitiveMap.put(Integer.class, Integer.TYPE); primitiveMap.put(Long.class, Long.TYPE); primitiveMap.put(Short.class, Short.TYPE); primitiveMap.put(Date.class, Date.class); } }