Можно ли программно угадать во время выполнения, какие поля
используется методом equals () объекта, которым я не владею? Особенно когда
getters не используются equals () для доступа к полям:
class OverrideEquals {
String firstField;
Integer secondField = 0;
@Override public boolean equals(Object other) {
if ( other instanceof OverrideEquals ) {
return lastField.equals(((OverrideEquals) other).lastField);
}
return false;
}
}
В этом примере, есть ли способ узнать, что equals () использует firstField, а не lastField (анализ байт-кода, прокси, ...) в тот момент, когда он вызывается?