问题描述
我正在学习 Spring Cloud Function
。我们为什么要学习这个?运行代码时出现以下错误
Exception in thread "main" java.lang.classCastException: class reactor.core.publisher.FluxPeekFuseable cannot be cast to class java.lang.String (reactor.core.publisher.FluxPeekFuseable is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap')
at com.course.kafkaproducer.SpringCloudFunctionApplication.main(SpringCloudFunctionApplication.java:22)
@SpringBootApplication
public class SpringCloudFunctionApplication {
public static void main(String[] args) {
//SpringApplication.run(SpringCloudFunctionApplication.class,args);
ApplicationContext context = SpringApplication.run(SpringCloudFunctionApplication.class);
FunctionCatalog catalog = context.getBean(FunctionCatalog.class);
Function<String,String> function = catalog.lookup("lowercase");
System.out.println(function.apply("hello"));
}
@Bean
public Function<String,String> uppercase() {
return value -> value.toupperCase();
}
@Bean
public Function<Flux<String>,Flux<String>> lowercase() {
return flux -> flux.map(value -> value.toLowerCase());
}
}
解决方法
我不确定您要在这里做什么,但是您正在调用反应式函数,但由于某种原因需要命令式输出,因此您的类强制转换异常确实是预期的行为。