GenericlassUtil.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package com.poyee.util;
  2. import java.lang.reflect.ParameterizedType;
  3. import java.lang.reflect.Type;
  4. /**
  5. *
  6. */
  7. public class GenericlassUtil {
  8. public static Class<?> getActualTypeArgument(Class<?> clazz) {
  9. Class<?> entitiClass = null;
  10. Type genericSuperclass = clazz.getGenericSuperclass();
  11. if (genericSuperclass instanceof ParameterizedType) {
  12. Type[] actualTypeArguments = ((ParameterizedType) genericSuperclass)
  13. .getActualTypeArguments();
  14. if (actualTypeArguments != null && actualTypeArguments.length > 0) {
  15. entitiClass = (Class<?>) actualTypeArguments[0];
  16. }
  17. }
  18. return entitiClass;
  19. }
  20. public static Class<?> getActualTypeArgument(Class<?> clazz, int i) {
  21. Class<?> entitiClass = null;
  22. Type genericSuperclass = clazz.getGenericSuperclass();
  23. if (genericSuperclass instanceof ParameterizedType) {
  24. Type[] actualTypeArguments = ((ParameterizedType) genericSuperclass)
  25. .getActualTypeArguments();
  26. if (actualTypeArguments != null && actualTypeArguments.length > 0) {
  27. entitiClass = (Class<?>) actualTypeArguments[i];
  28. }
  29. }
  30. return entitiClass;
  31. }
  32. }