dzeksondzekson
#java #naukaprogramowania #codereview

https://pastebin.com/TJVCd2W9

Takie coś finalnie wyszło, dzięki za pomoc wszystkim, nie wiem jedynie czym zastąpić te przestarzałe get Year, poza tym działa.

Byłbym również wdzięczny za pomoc jeśli chodzi o testy jednostkowe, tzn. co testować i jak to ugryźć, bo czytam sobie teraz o tym ale nigdy testów nie pisałem.
1
  • Najlepsze
  • Wszystkie komentarze
A.....t
A.....t
@dzeksondzekson: ja bym się nie brał za testy na tym poziomie, najpierw ogarnij porządnie język i programowanie obiektowe
1
dzeksondzekson
@AwizisieAkat: A może bardziej konstruktywnie?
0
A.....t
A.....t
@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ą
0
A.....t
A.....t
@dzeksondzekson: i wtedy np. masz klasę
StringToUserConverter {
public User convert(String line) {
String[] attr = line.split(",");
return new User(attr[0], attr[1],
0
dzeksondzekson
@AwizisieAkat: Zamieniłem na DateTimeFormatter + LocalDate, i hula, mam teraz

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

DateTimeFormatter formatter
0
A.....t
A.....t
@dzeksondzekson:
w klasie User możesz zrobić metodę:

public int getAge() {
return
0
dzeksondzekson
@AwizisieAkat: no nie bardzo chyba bo u mnie dataUrodzenia to jest String
0
A.....t
A.....t
@dzeksondzekson: poszedł update przed chwilą, a tam jeszcze tego foramttera musisz zrobić w tej metodzie
0
dzeksondzekson
@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
0
A.....t
A.....t
@dzeksondzekson: nie o to, może napisz jakie masz zadanie to przygotuję jakiś przykład
0
dzeksondzekson
@AwizisieAkat: no żeby zrobić działający program i do niego testy
0
WormRider
Na testy to fajnie opracowane jest na drugim kursie na stronie https://www.edx.org/course/introduction-programming-java-writing-uc3mx-it-1-2x
Spokojnie mógłbyś napisać proste testy do swojego programu.
0
sorhu
@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.
0