对比新文件 |
| | |
| | | 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<?>, 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); |
| | | } |
| | | } |