Hello, community,
Our great Validator does not pass my code because dates of birth do not count correctly in milliseconds. Siriusly?! Anyway, can you please help me to understand WTF what is the problem and how it could be fixed.
I would appreciate it.
Логика чтения/записи реализованная в методах save/load должна работать корректно в случае, если список users не пустой.
Убедись, что дни рождения пользователей корректно записываются и читаются, с точностью до миллисекунд.
package com.javarush.task.task20.task2002;
import java.util.Date;
public class User {
private String firstName;
private String lastName;
private Date birthDate;
private boolean isMale;
private Country country;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Date getBirthDate() {
return birthDate;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
public boolean isMale() {
return isMale;
}
public void setMale(boolean male) {
isMale = male;
}
public Country getCountry() {
return country;
}
public void setCountry(Country country) {
this.country = country;
}
public static enum Country {
UKRAINE("Ukraine"),
RUSSIA("Russia"),
OTHER("Other");
private String name;
private Country(String name) {
this.name = name;
}
public String getDisplayName() {
return this.name;
}
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
if (isMale != user.isMale) return false;
if (firstName != null ? !firstName.equals(user.firstName) : user.firstName != null) return false;
if (lastName != null ? !lastName.equals(user.lastName) : user.lastName != null) return false;
if (birthDate != null ? !birthDate.equals(user.birthDate) : user.birthDate != null) return false;
return country == user.country;
}
@Override
public int hashCode() {
int result = firstName != null ? firstName.hashCode() : 0;
result = 31 * result + (lastName != null ? lastName.hashCode() : 0);
result = 31 * result + (birthDate != null ? birthDate.hashCode() : 0);
result = 31 * result + (isMale ? 1 : 0);
result = 31 * result + (country != null ? country.hashCode() : 0);
return result;
}
}