public static boolean isObjectMethod(@NotNull JavaMethod method) { String name = method.getName().asString(); if (name.equals("toString") || name.equals("hashCode")) { return method.getValueParameters().isEmpty(); } else if (name.equals("equals")) { return isMethodWithOneParameterWithFqName(method, "java.lang.Object"); } return false; }
private static boolean isMethodWithOneParameterWithFqName( @NotNull JavaMethod method, @NotNull String fqName) { List<JavaValueParameter> parameters = method.getValueParameters(); if (parameters.size() == 1) { JavaType type = parameters.get(0).getType(); if (type instanceof JavaClassifierType) { JavaClassifier classifier = ((JavaClassifierType) type).getClassifier(); if (classifier instanceof JavaClass) { FqName classFqName = ((JavaClass) classifier).getFqName(); return classFqName != null && classFqName.asString().equals(fqName); } } } return false; }