Код: Выделить всё
record SingleIndexProperties(A property) implements IndexProperties {
// Here go implementations of IndexProperties methods; not relevant to question.
}

Это всего лишь отрывок из гораздо более масштабного графика протестированного кода. Здесь интересно то, что по какой-то причине метод записи по умолчаниюquals() выполняет некоторые динамические вызовы.
Наивно я ожидал, что этот метод будет делать что-то вроде этого:
Код: Выделить всё
public boolean equals(Object o) {
if (o instanceof SingleIndexProperties other) {
return Objects.equals(property, other.property);
}
return false;
}
(Я использую OpenJDK Temurin-21.0.1+12. Пара, которую вы видите в графе Flame, — это то, что помещается в запись, и сама по себе также является записью, чьи методы равенства() демонстрируют такое же поведение по умолчанию. Тогда внутри пары есть целые числа.)
Подробнее здесь: https://stackoverflow.com/questions/775 ... r-the-hood
Мобильная версия