From 84061cf60fb5fee2f4e048109152b2a72b9c7c9e Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Sat, 30 May 2020 17:42:28 +0800 Subject: [PATCH] --- src/org/redkale/util/TypeToken.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/org/redkale/util/TypeToken.java b/src/org/redkale/util/TypeToken.java index 2e8ec5eec..b9322a3ac 100644 --- a/src/org/redkale/util/TypeToken.java +++ b/src/org/redkale/util/TypeToken.java @@ -84,7 +84,9 @@ public abstract class TypeToken { if (type instanceof GenericArrayType) return Array.newInstance(typeToClass(((GenericArrayType) type).getGenericComponentType()), 0).getClass(); if (!(type instanceof ParameterizedType)) return null; //只能是null了 Type owner = ((ParameterizedType) type).getOwnerType(); - return typeToClass(owner == null ? ((ParameterizedType) type).getRawType() : owner); + Type raw = ((ParameterizedType) type).getRawType(); + //A$B owner=A raw=A$B, 所以内部类情况下使用owner是错误的 + return typeToClass(raw != null ? raw : owner); } public static Type[] getGenericType(final Type[] types, final Type declaringClass) {