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