У меня есть группа студентов. Сначала я хочу сгруппировать их по меткам. Затем я хочу вместе сгруппировать эти группы в одно и то же имя вместе.Статический контекст не может получить доступ к нестационарным в коллекторах
Map<Integer,Map<String,List<String>>> groupping = students.stream()
.collect(Collectors.groupingBy(Student::getMarks,
Collectors.mapping(Student::getName,Collectors.toList())));
Я получаю сообщение об ошибке сказав,
Non-статический метод не может refered от быть в статическом контексте.
Да. Я в значительной степени понимаю, что я не могу ссылаться на нестатический метод без экземпляра. Но со всеми этими потоковыми операциями я немного смущен тем, что пошло не так.
Вместо того, чтобы исправить это; Я действительно хочу знать, что здесь происходит. Любой из ваших входов оценен!
Потому что, если я пишу, приведенная ниже группировка полностью действительна;
Map<Integer,List<Student>> m = students.stream().
collect(Collectors.groupingBy(Student::getMarks));
Вот мой Student.java класс (В случае, если вам это нужно)
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 ;
}
}
что вы пытаетесь сохранить внутри Карта> ?? Я имею в виду, что такое объект String, который вы собираетесь хранить внутри списка ?? Список имени студента ??? –
@SupunWijerathne На самом деле, мое намерение состояло в том, чтобы хранить 'Студентов' в этом самом внутреннем« Листе ». –
Так что это должен быть список. не так ли? :)) –