Java · 42 строк
Класс клиента из сервиса онбординга. Объекты кладут в HashSet для дедупликации заявок и передают между потоками. Найдите проблемы.
В работе: Доменная модель клиента: от неё зависят дедупликация заявок, кэши и логи.
Как проверяем
Нажмите на строку с ошибкой и коротко напишите, что не так. Баг засчитан, если отмечена хотя бы одна его строка. Зачёт — найдено не меньше 60 % багов с учётом серьёзности (критичный весит 3, обычный 2, мелкий 1), а лишних отметок не больше, чем багов в коде. Пустые строки, скобки и комментарии лишними не считаем. Ответ один на подход: после него показываем разбор.
Источник: обзор транскриптов интервью: Сбер, Java — ревью класса Person. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
public class Person {private String name;private String passport;private Date birthDate;private List<String> phones;public Person(String name, String passport, Date birthDate, List<String> phones) {this.name = name;this.passport = passport;this.birthDate = birthDate;this.phones = phones;}public Date getBirthDate() {return birthDate;}public List<String> getPhones() {return phones;}public int getAge() {return new Date().getYear() - birthDate.getYear();}@Overridepublic boolean equals(Object o) {if (this == o) return true;Person person = (Person) o;return name == person.name && passport.equals(person.passport);}@Overridepublic int hashCode() {return Objects.hash(name, birthDate);}@Overridepublic String toString() {return "Person{name=" + name + ", passport=" + passport + ", phones=" + phones + "}";}}