From 336eb77c1a07ca3e3ead4482b51f848fa16ab3b7 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期日, 12 十一月 2023 20:15:38 +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