yield在Maven项目的buildSequence中抛出KotlinNullPointerException
我正在调查Kotlin的coroutines
,从斐波那契序列开始,如下所示:
import kotlin.coroutines.experimental.buildSequence fun main(args: Array<String>) { val fibo = buildSequence { yield(0) var a = 0 var b = 1 while (true) { yield(b) b = a + b a = b - a } } fibo.take(5).forEach { println(it) } }
我使用的是IntelliJ IDEA,当上面的代码运行在由New Project
– > Kotlin
– > Kotlin(JVM)
创建的New Project
,它工作正常。
当代码运行在Maven的一个项目中,从archetype org.jetbrains.kotlin:kotlin-archetype-jvm
创建org.jetbrains.kotlin:kotlin-archetype-jvm
kotlin-archetype-jvm:1.1.2-4
它会抛出KotlinNullPointerException
。
异常在线程“主”kotlin.KotlinNullPointerException在kotlin.coroutines.experimental.SequenceBuilderIterator.yield(SequenceBuilder.kt:163)在com.github.fdudannychen.HelloKt $ main $ fibo $ 1.doResume(Hello.kt:7)在kotlin .corresponines.experimental.jvm.internal.CoroutineImpl.resume(CoroutineImpl.kt:54)at kotlin.coroutines.experimental.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:128)at kotlin.sequences.TakeSequence $ iterator $ 1.hasNext(Sequences。 kt:348)at com.github.fdudannychen.HelloKt.main(Hello.kt:22)
本文中的步骤无助于解决问题。 我不知道为什么它不工作。 我错过了什么吗?
这个问题在KT-18026中被报告,并被标记为Kotlin版本1.1.2-5