@Override public Class<T> getType() { int index = getIndex(variable); if (owningType instanceof ParameterizedType && index != -1) { Type fieldType = ((ParameterizedType) owningType).getActualTypeArguments()[index]; return resolveType(fieldType); } return resolveType(variable); }