final ParameterResult result = new ParameterResult(); result.setIndex(originatingIndex); Type typeResult = result.getResult();
/** * Gets the generic argument of an entity type. * * @param clazz * The entity type. * @param genericParameter * The generic parameter to get. * @param targetClazz * The target of which the generic parameter is to be resolved. * @return The type of the generic parameter of the target. */ public static Type getEntityGenericType(final Class<?> clazz, final int genericParameter, final Class<?> targetClazz) { // Get the type path. final Deque<Type> typePath = GenericsUtil.findTypePath(clazz, targetClazz); final Iterator<Type> iterator = typePath.descendingIterator(); final ParameterResult result = new ParameterResult(); result.setIndex(genericParameter); Type typeResult = result.getResult(); while (iterator.hasNext() && !(typeResult instanceof Class)) { final Type type = iterator.next(); if (CheckUtil.isNull(typeResult)) { result.setResult(GenericsUtil.processNoResult(genericParameter, result.getIndex(), type)); } else { GenericsUtil.processExistingResult(result, type); } typeResult = result.getResult(); } typeResult = result.getResult(); return typeResult; }