Type type = bar.getClass().getGenericInterfaces()[0];
if (type instanceof ParameterizedType) {
Type actualType = ((ParameterizedType) type).getActualTypeArguments()[0];
System.out.println(actualType);
}
Конечно, в общем случае вы должны выполнять итерацию по массиву, а не предполагать, что он содержит один элемент ([0]
). В приведенном выше примере вы можете разыграть actualType
до java.lang.Class
. В других случаях он может быть другим (см. Комментарий от meriton)