Wpis z mikrobloga

@dzeksondzekson: bo w sumie to masz wszystko w jednej klasie, spróbuj sobie powydzielać różne części do osobnych klas, np. klasę która ładuje ci userów z pliku, która korzysta z kolejnej klasy - konwertera pojedynczej linii z pliku do usera, itp.
wywal metody statyczne, i co do języka to może warto przerzucić się ze starych dat na te nowsze (LocalDateTime) - jak widzisz dostajesz warningi, że "deprecated", do czytania plików są też
@dzeksondzekson: i wtedy np. masz klasę
StringToUserConverter {
public User convert(String line) {
String[] attr = line.split(",");
return new User(attr[0], attr[1], itp);
}

i wtedy do takiej klasy możesz sobie napisać test
np.
StringToUserConverterTest {
private final StringToUserConverter converter = new StringToUserCOnverter();

@Test
public void convertTest() throws Exception {
User user = converter.convert("jan,kowalski,555-123-546,2000-01-01");
assertEquals("jan", user.getFirstName());
itp.
}}
@AwizisieAkat: Zamieniłem na DateTimeFormatter + LocalDate, i hula, mam teraz

// obliczanie wieku
private static Integer obliczWiek(String dataUrodzenia) throws ParseException {

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate urodziny = LocalDate.parse(dataUrodzenia, formatter);
LocalDate teraz = LocalDate.now();

Integer wiek = teraz.getYear() - urodziny.getYear();

return wiek;
}

Co do programu nie bardzo wiem jak to przebudować żeby nie przestało działać, a trochę goni mnie czas.
@dzeksondzekson:
w klasie User możesz zrobić metodę:

public int getAge() {
return dataUrodzenia.until(LocalDate.now()).getYears();
}

lub gdy dataUrodzenia to string
public int getAge() {
return LocalDate.parse(dataUrodzenia, formatter).until(LocalDate.now()).getYears();
}
@AwizisieAkat: Super, mając tę metodę getAge mogłem wywalić tę całą metodę obliczWiek i ograniczyć się do

// zamiana daty urodzenia na wiek
for (User user : list) {

Integer wiek = user.getAge();

user.setDataUrodzenia(wiek.toString());
}

rozumiem że o to chodziło? :P
@dzeksondzekson

no nie bardzo chyba bo u mnie dataUrodzenia to jest String

No i słabo. String to ciąg znaków. Nie nadaje się do reprezentacji daty.
Czytasz tę datę z pliku jako String. Wiadomo. Ale musisz to jak najszybciej zamienić na właściwy typ.