Mam ten kawałek kodu, który działa dobrze:

   return getHostimeta(time)
                        .stream()
                        .filter(e -> e.getPersonneId() == enfantId)
                        .collect(Collectors.toList()).get(0);

Chcę sprawdzić, czy lista ma tylko 1 element:

return Collections.singletonList(getHostimeta(time)
        .stream()
        .filter(e -> e.getPersonneId() == enfantId)
        .collect(Collectors.toList())).get(0);

Ale mam ten błąd kompilacji:

Required type:
IHostimeta

Provided:
List<Hostimeta>
-1
en Lopes 17 październik 2020, 20:11

1 odpowiedź

Najlepsza odpowiedź

Collections.singletonList() nie pomoże w żaden sposób z tym problemem. Najbardziej wiarygodne dostępne rozwiązania są

  • Aby zapisać wynik collect(toList()) w zmiennej i, na oddzielnej linii sprawdzić, czy jego rozmiar wynosi 1

  • Aby użyć innego kolekcjonera - wymyślony własną lub używając Istniejąca z biblioteki osób trzecich, ponieważ Java nie dostarcza niczego, co naprawdę może pomóc w pudełku

  • Aby to zrobić z innych operacji zbiórki, np.

    stream.reduce((a, b) -> { throw new IllegalStateException(); }).get()
    
0
Louis Wasserman 5 listopad 2020, 02:23