在Flux中使用Array <String>

ohw*_*ppp 0 spring range reactive-programming kotlin

你能帮助我使用Array和流(?)来使用它来使用单个元素(String)将Movie保存到db并返回FLux.Spring特定的东西并不重要 - 只是迭代字母表和创建随机电影的方式.这样做的最佳和最科学的方法是什么?

    val alphabet = arrayOf("A".."Z")
    val exampleMovies: Flux<Movie> = Flux.just(alphabet)
            .flatMap { movieRepository.save(Movie(name = it)) }
Run Code Online (Sandbox Code Playgroud)

我收到编译错误:

Error:(15, 62) Kotlin: Type mismatch: inferred type is Array<ClosedRange<String>>! but String? was expected
Run Code Online (Sandbox Code Playgroud)

s1m*_*nw1 6

问题是arrayOf("A".."Z")会给出一个Array<ClosedRange<String>>,即数组有一个类型的元素ClosedRange.你真正想要拥有的是我猜的Array<String>元素A, B, C, ..., Z吗?不幸的是,范围运算符不能像这样工作Strings,此解释.

相反,通过相应地映射来创建该数组CharRange:

val alphabet = ('A'..'Z').map(Char::toString).toTypedArray()
Run Code Online (Sandbox Code Playgroud)