Collectors.toMap () keyMapper - bardziej zwięzłe wyrażenie?
Próbuję wymyślić bardziej zwięzłe wyrażenie dla parametru funkcji „keyMapper” poniżejCollectors.toMap()
połączenie:
List<Person> roster = ...;
Map<String, Person> map =
roster
.stream()
.collect(
Collectors.toMap(
new Function<Person, String>() {
public String apply(Person p) { return p.getLast(); }
},
Function.<Person>identity()));
Wygląda na to, że powinienem być w stanie wbudować go za pomocą wyrażenia lambda, ale nie mogę wymyślić takiego, który się kompiluje. (Jestem całkiem nowy w lambdach, więc to nie jest żadna niespodzianka.)
Dzięki.
-> Aktualizacja:
Jak zauważono w zaakceptowanej odpowiedzi
Person::getLast
tego właśnie szukałem i próbowałem. Jednak nocna wersja Eclipse 4.3 w wersji BETA_8 stanowiła problem - oznaczyła to jako błędne. Po skompilowaniu z wiersza poleceń (co powinienem zrobić przed wysłaniem) zadziałało. Więc czas na zgłoszenie błędu z eclipse.org.
Dzięki.