В функции Java 8 Stream.collect, когда я использую Collectors.groupingBy()
, я замечаю, что параметр может быть
Function<? super T,? extends K> classifier
Здесь я должен использовать ссылку на метод ::
. Почему я не могу использовать лямбду вместо этого?
public class TransAction{
public TransAction(String s,Integer v) {
str=s;
value=v;
}
private String str;
private Integer value;
//getter/setters...
}
//in main()
TransAction[] a = { new TransAction("small", 41), ..., new TransAction("big", 122) };
Map<String, List<TransAction>> c = Arrays.stream(a).collect(Collectors.groupingBy(TransAction::getStr));
//Arrays.stream(a).collect(Collectors.groupingBy((a)->a.getStr()));