Вам нужно написать это самостоятельно, но это не должно быть слишком плохо. Вам нужно будет использовать отражение.
Во-первых, вам нужен класс каждого объекта. Используйте Object#getClass()
, чтобы получить класс.
Во-вторых, используйте Class[] Class#getInterfaces()
, чтобы получить интерфейсы для двух классов и искать совпадения.
Затем, если вы найдете совпадение, используйте Method[] Class#getMethods()
, чтобы найти все методы интерфейса, которые у них общие.
Для каждого из этих методов используйте Method#getName()
, чтобы увидеть, начинаются ли они с «get», и Method#getParameterTypes()
, чтобы получить типы параметров методов. Для типичного «геттера» он будет иметь 0 параметров.
Затем, чтобы выполнить методы, вызовите Method#invoke(Object)
для каждого из ваших объектов. Это вызовет метод и вернет значение этого геттера. Затем вы можете сравнить эти значения и убедиться, что они совпадают.