静态上下文无法访问Collectors中的非静态内容。

24 浏览
0 Comments

静态上下文无法访问Collectors中的非静态内容。

我有一组学生。首先,我想按照成绩把他们分组。然后,我想进一步将这些组合并为相同姓名的学生在一起。

Map>> grouping = students.stream()
    .collect(Collectors.groupingBy(Student::getMarks, 
        Collectors.mapping(Student::getName, Collectors.toList())));

我收到一个错误提示:

非静态方法无法从静态上下文中引用。

是的,我很清楚在没有实例的情况下不能引用非静态方法。但是在所有这些流操作中,我有些困惑到底出了什么问题。

我真的想知道这里发生了什么,而不是如何修复它。非常感谢您的任何建议!

因为如果我写下面的分组是完全有效的:

Map> m = students.stream()
    .collect(Collectors.groupingBy(Student::getMarks));

以下是我的Student.java类(如果需要的话):

public class Student {
    private String name;
    private int marks;
    // getters, setters, constructor and toString
}

0