【发布时间】:2021-07-08 01:42:27
【问题描述】:
我有这样的课
public class Person {
private String name;
private String age;
private Boolean student;
...
//
getters and setters
}
public class PersonDto {
private List<Person> persons
private Person president
//
getters and setters
}
并从外部 API 获取数据到 webclient
--- omitted ---
final Mono<PersonDto> personDto = wrapperWebClient.getPersonDto(uriComponents, params, PersonDto.class);
Mono<StudentDto> studentDto = convert(personDto);
--- omitted ---
我想像下面这样转换数据 Mono DTO。
public class Student {
// no constructors
private String name;
private String age;
private Boolean student;
...
//
getters and setters
}
public class StudentDto {
private List<Student> students;
private Student represent;
...
//
getters and setters
}
这是我的尝试
--- omitted ---
private Mono<StudentDto> convert(Mono<PersonDto> personDto) {
StudentDto studentDto = new StudentDto();
personDto.map(
persons -> {
studentDto.setStudents(
persons.getPersons()
.stream().filter(person -> person.isStudent())
.collect(toList())
);
studentDto.setRepresent(
persons.getRepresent().isStudent()
);
}
)
return ???;
}
我的方法似乎是同步的。
【问题讨论】:
-
这能回答你的问题吗? map vs flatMap in reactor
标签: java mono reactive-programming spring-webflux project-reactor