Le contexte statique ne peut pas accéder aux éléments non statiques dans les collecteurs

J'ai un groupe d'élèves. Tout d'abord je tiens à les regrouper par les marques. Alors je veux plus de groupe de ces ensembles dans la même nom des élèves.

   Map<Integer,Map<String,List<String>>> groupping = students.stream()
                                                        .collect(Collectors.groupingBy(Student::getMarks, 
                                                                Collectors.mapping(Student::getName,Collectors.toList())));

J'obtiens un message d'erreur indiquant que,

Non méthode statique ne peut pas être référencé à partir d'un contexte statique.

Oui. Je suis bien conscient que je ne peut pas se référer à une non-méthode statique sans disposer d'une instance. Mais avec tous ces flux d'opérations, je suis peu confus en ce qui a mal tourné vraiment.

Plutôt que de comment résoudre ce problème; j'ai vraiment envie de savoir ce qui se passe ici. L'un de vos entrées sont appréciées!

Parce que Si j'écris ci-dessous groupement est tout à fait valable;

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

Voici mon Student.java classe (Dans le cas où si vous en avez besoin)

public class Student {

    private String name;
    private int marks;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getMarks() {
        return marks;
    }

    public void setMarks(int marks) {
        this.marks = marks;
    }

    public Student(String name, int marks) {

        this.name = name;
        this.marks = marks;
    }

    @Override
    public String toString() {
        return name + ':' + marks ;
    }
}

source d'informationauteur Jude Niroshan