Klasa generyczna

0

Hej chce stworzyć sobie klasę generyczną, która będzie sprawdzała list pewnych obiektów które jedna z pól będzie data. Niestety i.getTime() się nie kompiluje i słusznie bo nie wie jaki to obiekt będzie. Jak to można rozwiązać używając klasy generycznej.

public class Validation<T> {

    public List<T> valDate(List<T> indicators){ 
            LocalDateTime today = LocalDateTime.now();      
            return indicators.stream().filter(i->i.getTime.isBefore(today.minusDays(1))).collect(Collectors.toList());

    }

}
0

Nie brakuje nawiasów?

i->i.getTime.isBefore...

vs

i->i.getTime().isBefore...

Edit:
Teraz zauważyłem dopiero że tam masz List<t>, więc pewnie chcesz zrobić coś w rodzaju "T extends YourClass".

0

Możesz wprowadzić jakiś inteface HasTime

interface HasTime {
      LocalDateTime getTime();
}

i wtedy klase zdefiniuj tak:

public class Validation<T extends HasTime> {

Tylko elementy będą teraz musiały mieć interfejs HasTime (co zwykle da się zrobić).

Inna uwaga jest taka, że:

 LocalDateTime today = LocalDateTime.now();   

jest niestestowalne.

Warto mieć w zależności Clock i użyć LocalDateTime.now(clock); .

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0