#spring-webflux #project-reactor
#spring-webflux #проект-реактор
Вопрос:
Я хочу использовать handle
оператор, но его результат не того типа, который я ожидаю, он всегда Object
Mono.just("lol").handle((string, sink) -> {
if(!string.equals("lol")) {
sink.error(new RuntimeException("not lol!"));
} else {
sink.next(2);
}
}).doOnNext(myInt -> { // expecting myInt to be an integer but is Object
System.out.println(myInt);
});
Как я могу заставить дескриптор распознавать тип (аналогично тому, как map
или flatMap
распознает возвращаемый тип)?
Всегда ли я должен использовать cast
оператор?
Ответ №1:
Используйте дженерики.
Mono.<String>just("lol").<Integer>handle((string, sink) -> {
if(!string.equals("lol")) {
sink.error(new RuntimeException("not lol!"));
} else {
sink.next(2);
}
}).doOnNext(myInt -> {
System.out.println(myInt);
})