Type genType = getClass().getGenericSuperclass(); if (!(genType instanceof ParameterizedType)) { genType = getClass().getSuperclass().getGenericSuperclass(); } Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); Class realClass = (Class) params[0];