From c9863373fe4ef02c6f9b08c007a0d747af3bb490 Mon Sep 17 00:00:00 2001 From: maxf <1107047387@qq.com> Date: Mon, 7 Jan 2019 17:18:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E8=B7=91=E9=80=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yexuejc/base/util/ObjUtil.java | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/yexuejc/base/util/ObjUtil.java b/src/main/java/com/yexuejc/base/util/ObjUtil.java index cc90419..1c180fd 100644 --- a/src/main/java/com/yexuejc/base/util/ObjUtil.java +++ b/src/main/java/com/yexuejc/base/util/ObjUtil.java @@ -2,6 +2,7 @@ package com.yexuejc.base.util; import java.io.*; import java.lang.reflect.Field; +import java.sql.Timestamp; import java.util.*; /** @@ -116,7 +117,7 @@ public class ObjUtil { } } Object o = f.get(obj); - if (null == o || o.getClass().isPrimitive() || o instanceof String || o instanceof Enum) { + if (null == o || isPrimitive(o) || o instanceof String || o instanceof Enum) { if (null == o && !putNull) { continue; } @@ -133,6 +134,23 @@ public class ObjUtil { if (bodyList.size() > 0) { objMap.put(fName, bodyList); } + } else if (o instanceof Map) { + Map map = (Map) o; + if (map.size() > 0) { + objMap.put(fName, map); + } + } else if (o instanceof Set) { + Set list = (Set) o; + Set bodyList = new HashSet(); + list.forEach(it -> { + if (null != it) { + Map underlineMap = getUnderlineMap(it, isAnnotationAll, putNull); + bodyList.add(underlineMap); + } + }); + if (bodyList.size() > 0) { + objMap.put(fName, bodyList); + } } else { Map underlineMap = getUnderlineMap(o, isAnnotationAll, putNull); objMap.put(fName, underlineMap); @@ -144,6 +162,27 @@ public class ObjUtil { return objMap; } + /** + * 判断是否基本类型(包括String,BigDecimal,Number) + * + * @param obj + * @return + */ + public static boolean isPrimitive(Object obj) { + if (null == obj) { + return false; + } + boolean b = obj.getClass().isPrimitive() + || obj instanceof Integer || obj instanceof Character || obj instanceof Boolean + || obj instanceof Number || obj instanceof String || obj instanceof Double || obj instanceof Float + || obj instanceof Short || obj instanceof Long || obj instanceof Byte || obj instanceof Date + ; + if (b) { + return true; + } + return false; + } + public static void main(String[] args) { B a = new B();