String (@NotNull PsiMethod psiMethod, @NotNull PsiClass psiClass) { StringBuilder sb = new StringBuilder(); sb.append('('); if (psiMethod.isConstructor() && !psiClass.hasModifierProperty(PsiModifier.STATIC)) { PsiClass outerClass = psiClass.getContainingClass(); if (outerClass != null) { String desc = descriptor(outerClass, 0); if (desc == null) return null; sb.append(desc); } } for (PsiParameter parameter : psiMethod.getParameterList().getParameters()) { String desc = descriptor(parameter.getType()); if (desc == null) { return null; } sb.append(desc); } sb.append(')'); PsiType returnType = psiMethod.getReturnType(); if (returnType == null) { sb.append('V'); } else { String desc = descriptor(returnType); if (desc == null) return null; sb.append(desc); } return sb.toString(); }