import java.util.Collection; public class SomeClass { public static Object find(Collection collection, Object criteria) { return criteria; } static class SomeSubClass extends SomeClass { public static T find(Collection collection, Object criteria) { return null; } } void f() { Collection c = null; Object criteria = null; // IntelliJ finds the find(Collection, Object) method, and reports a non-existent compile error. T someInstance = SomeSubClass.find(c, criteria); } }