@NotNull
  public static PsiType extractAllElementType(@NotNull PsiType psiType, @NotNull PsiManager psiManager, final String superClass, final int paramIndex) {
    PsiType oneElementType = substituteTypeParameter(psiType, superClass, paramIndex);

    if (null == oneElementType || Comparing.equal(getJavaLangObject(psiManager), oneElementType)) {
      return PsiWildcardType.createUnbounded(psiManager);
    } else {
      return PsiWildcardType.createExtends(psiManager, oneElementType);
    }
  }
@NotNull
  public static PsiType extractAllElementType(@NotNull PsiType psiType, @NotNull PsiManager psiManager, final String superClass, final int paramIndex)