静态上下文无法访问收集器中的非静态
2022-09-01 01:58:48
我有一群学生。首先,我想按标记对它们进行分组。然后我想进一步将这些集合分组为同名学生。
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));
这是我的学生.java课(如果你需要的话)
public class Student {
private String name;
private int marks;
// getters, setters, constructor and toString
}