我有一组学生。首先,我想按照分数将他们分组。然后,我希望将这些集合进一步分组,将相同姓名的学生放在一起。
Map<Integer,Map<String,List<String>>> groupping = students.stream()
.collect(Collectors.groupingBy(Student::getMarks,
Collectors.mapping(Student::getName,Collectors.toList())));
我遇到了一个错误,错误信息为:
非静态方法无法从静态上下文中引用。
是的,我知道没有实例时不能引用非静态方法。但是在所有这些流操作中,我有点困惑到底出了什么问题。
与其说我想知道如何修复这个问题;我更想知道这里到底发生了什么。欢迎提供您的任何见解!
因为如果我写下面的分组代码,它是完全有效的;
Map<Integer,List<Student>> m = students.stream().
collect(Collectors.groupingBy(Student::getMarks));
这里是我的Student.java类(如果您需要)
。public class Student {
private String name;
private int marks;
// getters, setters, constructor and toString
}