ReflectionAccessMethodBuilder (@NotNull PsiParameterList parameterList) { PsiParameter[] parameters = parameterList.getParameters(); for (PsiParameter parameter : parameters) { PsiType parameterType = parameter.getType(); PsiType erasedType = TypeConversionUtil.erasure(parameterType); String typeName = typeName(parameterType, erasedType); String jvmType = erasedType != null ? extractJvmType(erasedType) : typeName; String name = parameter.getName(); PsiType accessedType = erasedType != null ? PsiReflectionAccessUtil.nearestAccessibleType(erasedType) : PsiReflectionAccessUtil.nearestAccessibleType(parameterType); myParameters.add(new ParameterInfo(accessedType.getCanonicalText(), name, jvmType)); } return this; }