если все, что вы хотите сделать, это filter , тогда вам не нужно .map(Student::clone)
, но если вам нужно клонировать объекты, читайте дальше.
Object::clone
возвращаетвведите Object
, следовательно, ошибка компиляции, есть обходной путь, приводящий возвращенный Object
к типу Person
, но вместо этого я просто создал бы конструктор копирования или метод, который копирует содержимое Student
в новыйэкземпляр и возвращает его.
Затем просто сделайте:
.map(Student::new) // assuming you have a constructor public Student(Student s){...}
или
.map(Student::copy) // assuming you have a method public static Student copy(Student s){...}
, чтобы ответить на ваш второй вопрос:
List<Student> resultSet =
myMap.values()
.stream()
.flatMap(Collection::stream)
.filter(Student::verifyGrade)
.map(Student::new)
.collect(Collectors.toList());
, если вам не нужнодля клонирования объектов Student
, а затем просто удалите вызов
.map(Student::new)
.