From 08c8397a67a6b038bcfaa7ab79da6329b58227ca Mon Sep 17 00:00:00 2001 From: MrNavaStar Date: Sat, 17 Aug 2024 17:33:25 -0600 Subject: [PATCH] add function to find generic type params --- src/main/java/me/mrnavastar/r/R.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/me/mrnavastar/r/R.java b/src/main/java/me/mrnavastar/r/R.java index bf40905..ecc5956 100644 --- a/src/main/java/me/mrnavastar/r/R.java +++ b/src/main/java/me/mrnavastar/r/R.java @@ -1,8 +1,6 @@ package me.mrnavastar.r; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; +import java.lang.reflect.*; import java.util.Arrays; public class R { @@ -87,4 +85,17 @@ public R call(String name, Object... args) { call(name, null, args); return this; } + + public Class[] generics() { + if (clazz.getGenericSuperclass() instanceof ParameterizedType type) { + return Arrays.stream(type.getActualTypeArguments()).map(t -> { + try { + return Class.forName(t.getTypeName()); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + }).toArray(Class[]::new); + } + return null; + } } \ No newline at end of file