boolean ( @NotNull PsiMethod method, @NonNls @Nullable String containingClassName, @NonNls @Nullable String returnTypeString, @NonNls @Nullable String methodName, @NonNls String @Nullable ... parameterTypeStrings) { final Project project = method.getProject(); final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(project); final PsiElementFactory factory = psiFacade.getElementFactory(); try { if (parameterTypeStrings != null) { final PsiType[] parameterTypes = PsiType.createArray(parameterTypeStrings.length); for (int i = 0; i < parameterTypeStrings.length; i++) { ProgressManager.checkCanceled(); final String parameterTypeString = parameterTypeStrings[i]; parameterTypes[i] = factory.createTypeFromText(parameterTypeString, method); } if (returnTypeString != null) { final PsiType returnType = factory.createTypeFromText(returnTypeString, method); return methodMatches(method, containingClassName, returnType, methodName, parameterTypes); } else { return methodMatches(method, containingClassName, null, methodName, parameterTypes); } } else if (returnTypeString != null) { final PsiType returnType = factory.createTypeFromText(returnTypeString, method); return methodMatches(method, containingClassName, returnType, methodName); } else { return methodMatches(method, containingClassName, null, methodName); } } catch (IncorrectOperationException e) { throw new RuntimeException(e); } }