嗨,我是 Web Flux 和声明式编程风格的新手。
假设我有
List<String> numbers = Arrays.asList("one", "two", "three");
我转换成流
Stream<String> streamNumbers = numbers.stream();
我需要将此流转换为Flux<String>
对象。在 Flux 类中,我有两个静态方法签名来做到这一点
public static <T> Flux<T> fromStream(Stream<? extends T> s)
public static <T> Flux<T> fromStream(Supplier<Stream<? extends T>> streamSupplier)
我喜欢使用供应商功能界面,因为这样我就可以拥有一个管道。但问题是我什么时候喜欢这样
Flux.fromStream(() -> streamNumbers);
它工作正常。但是当我将它分配给这样的变量时
Supplier<Stream<String>> streamSupplier = () -> streamNumbers;
并且这个变量像这样适用于 fromStream 方法
Flux.fromStream(streamSupplier);
IntellJ 提示我这样的错误
Cannot resolve method 'fromStream(java.util.function.Supplier<java.util.stream.Stream<java.lang.String>>)
我需要知道为什么会这样???