From 3996d509a286f74f5565a7a3aac4f982917e7367 Mon Sep 17 00:00:00 2001 From: puppet-fish Date: Tue, 29 Jul 2025 17:28:32 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20#1617=20=E6=94=AF=E6=8C=81=E6=B3=9B?= =?UTF-8?q?=E5=9E=8B=E5=AF=B9=E8=B1=A1=E5=B5=8C=E5=A5=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/org/nutz/lang/Mirror.java | 1 + test/org/nutz/lang/MirrorTest.java | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/org/nutz/lang/Mirror.java b/src/org/nutz/lang/Mirror.java index b9921709a2..6c82db12c0 100644 --- a/src/org/nutz/lang/Mirror.java +++ b/src/org/nutz/lang/Mirror.java @@ -1708,6 +1708,7 @@ public static Class[] getGenericTypes(Field f) { Matcher m = PTN.matcher(gts); if (m.find()) { String s = m.group(2); + s = s.replaceAll("<+.*?>+", ""); String[] ss = Strings.splitIgnoreBlank(s); if (ss.length > 0) { Class[] re = new Class[ss.length]; diff --git a/test/org/nutz/lang/MirrorTest.java b/test/org/nutz/lang/MirrorTest.java index a620b20392..2bc5900c7c 100644 --- a/test/org/nutz/lang/MirrorTest.java +++ b/test/org/nutz/lang/MirrorTest.java @@ -501,6 +501,9 @@ class Abcc { List list2; + List> list3; + + Map>> map3; } @Test @@ -530,6 +533,14 @@ public void test_getGenericTypes() throws Exception { f = Abcc.class.getDeclaredField("name"); types = Mirror.getGenericTypes(f); assertEquals(0, types.length); + + f = Abcc.class.getDeclaredField("list3"); + types = Mirror.getGenericTypes(f); + assertEquals(1, types.length); + + f = Abcc.class.getDeclaredField("map3"); + types = Mirror.getGenericTypes(f); + assertEquals(2, types.length); } public static class TBOC {