From 101e8e9738e4bfe0ef7a5170d117b47bf901b8f6 Mon Sep 17 00:00:00 2001 From: ludc <pUXmgxCf6A> Date: 星期一, 29 五月 2023 11:29:48 +0800 Subject: [PATCH] 集团主模型发布接口方法移植开发 --- Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ClassUtil.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 50 insertions(+), 0 deletions(-) diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ClassUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ClassUtil.java new file mode 100644 index 0000000..353cace --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ClassUtil.java @@ -0,0 +1,50 @@ +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); + } +} -- Gitblit v1.9.3