Ich habe eine Gruppe von Studenten. Zuerst möchte ich sie nach den Markierungen gruppieren. Dann möchte ich diese Sets weiter in gleichnamige Studenten zusammen gruppieren.Der statische Kontext kann nicht auf nicht-statische Collectors zugreifen
Map<Integer,Map<String,List<String>>> groupping = students.stream()
.collect(Collectors.groupingBy(Student::getMarks,
Collectors.mapping(Student::getName,Collectors.toList())));
Ich erhalte eine Fehlermeldung, dass,
Nicht statische Methode kann nicht von einem statischen Kontext verwiesen werden.
Ja. Ich bin mir ziemlich bewusst, dass ich eine nicht-statische Methode nicht ohne eine Instanz beziehen kann. Aber bei all diesen Stream-Operationen bin ich etwas verwirrt, was wirklich schiefgelaufen ist.
Anstatt, wie das zu beheben; Ich möchte wirklich wissen, was hier vor sich geht. Irgendwelche Ihrer Eingaben werden geschätzt!
Denn wenn ich schreibe, ist die unten stehende Gruppierung vollständig gültig;
Map<Integer,List<Student>> m = students.stream().
collect(Collectors.groupingBy(Student::getMarks));
Hier ist meine Student.java Klasse (Im Fall, wenn Sie es brauchen)
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 ;
}
}
was versuchst du zu speichern?> ?? Ich meine, was ist das String-Objekt, das Sie in List speichern ?? Liste des Namens des Kursteilnehmers ?? –
@SupunWijerathne Eigentlich war es meine Absicht, 'Student's in dieser innersten' List' zu speichern. –
So sollte es eine Liste sein. nicht wahr? :)) –