Java8 .getMethod () vs :: getMethod - PullRequest
0 голосов
/ 30 ноября 2018

Я новичок в Java8, и я создал этот кусок кода, который работает нормально

 userService.getClient().findUsersByMarkets(marketIds)
                .stream()
                .filter(us -> !alreadyNotifiedUserIds.contains(us.getId()))
                .forEach(usersToBeNotified::add);

, но, насколько я понимаю, этот кусок кода также должен работать нормально, но это не так, и яинтересно почему

     userService.getClient().findUsersByMarkets(marketIds)
        .stream()
        .filter(us -> !alreadyNotifiedUserIds.contains(User::getId))
        .forEach(usersToBeNotified::add);

1 Ответ

0 голосов
/ 30 ноября 2018

User::getId является ссылкой на функцию, поэтому она не эквивалентна contains(us.getId()).

см. -> https://www.codementor.io/eh3rrera/using-java-8-method-reference-du10866vx для ознакомления с ссылками на методы.

...