From a5e3a277ba3cfb26326ec27bdffd428ff3d035ed Mon Sep 17 00:00:00 2001 From: redkale Date: Tue, 10 Oct 2023 15:48:05 +0800 Subject: [PATCH] getParameterizedType --- src/main/java/org/redkale/util/TypeToken.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/redkale/util/TypeToken.java b/src/main/java/org/redkale/util/TypeToken.java index 14949081f..a710f5b5d 100644 --- a/src/main/java/org/redkale/util/TypeToken.java +++ b/src/main/java/org/redkale/util/TypeToken.java @@ -406,10 +406,17 @@ public abstract class TypeToken { private static Type getType(Map map, Type type) { Type one = map.get(type); if (one == null) { - return type; + return getParameterizedType(map, type); } if (one instanceof ParameterizedType && !isClassType(one)) { - ParameterizedType pt = (ParameterizedType) one; + return getParameterizedType(map, one); + } + return getType(map, one); + } + + private static Type getParameterizedType(Map map, Type type) { + if (type instanceof ParameterizedType && !isClassType(type)) { + ParameterizedType pt = (ParameterizedType) type; Type owner = getType(map, pt.getOwnerType()); if (owner == null || isClassType(owner)) { Type raw = getType(map, pt.getRawType()); @@ -430,7 +437,7 @@ public abstract class TypeToken { } } } - return getType(map, one); + return type; } private static Map parseType(Map map, Class clzz) {