From b087dd0b92ab3e89ff66d6ffce334f38c2b4af15 Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Fri, 9 Jun 2023 20:00:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20field=20query=20=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E4=B8=8D=E6=94=AF=E6=8C=81=E9=9B=86=E5=90=88=E5=AD=90=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mybatisflex/core/util/ClassUtil.java | 4 ++++ .../src/main/java/com/mybatisflex/core/util/MapperUtil.java | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/ClassUtil.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/ClassUtil.java index a6c0f90a..a4151175 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/ClassUtil.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/ClassUtil.java @@ -105,6 +105,10 @@ public class ClassUtil { || clazz == double[].class; } + public static boolean canInstance(int mod) { + return !Modifier.isAbstract(mod) || !Modifier.isInterface(mod); + } + public static T newInstance(Class clazz) { try { diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/MapperUtil.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/MapperUtil.java index af2d8e25..e6dbd342 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/MapperUtil.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/MapperUtil.java @@ -31,6 +31,7 @@ public class MapperUtil { } + @SuppressWarnings({"rawtypes", "unchecked"}) public static void queryFields(BaseMapper mapper, List list, Consumer>[] consumers) { if (CollectionUtil.isEmpty(list) || ArrayUtil.isEmpty(consumers) || consumers[0] == null) { return; @@ -69,6 +70,10 @@ public class MapperUtil { private static Class getWrapType(Class type) { + if (ClassUtil.canInstance(type.getModifiers())) { + return type; + } + if (List.class.isAssignableFrom(type)) { return ArrayList.class; }