yield在maven项目

时间:2017-06-04 08:11:22

标签: kotlin coroutine

我正在研究Kotlin中的coroutines,从这样的Fibonacci序列开始:

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 - &gt;创建的项目中运行时Kotlin - &gt; Kotlin(JVM),它工作正常。

当代码在Maven项目中运行时,从原型org.jetbrains.kotlin:kotlin-archetype-jvm kotlin-archetype-jvm:1.1.2-4创建它会抛出KotlinNullPointerException

  

线程“main”中的异常kotlin.KotlinNullPointerException at   kotlin.coroutines.experimental.SequenceBuilderIterator.yield(SequenceBuilder.kt:163)     在com.github.fdudannychen.HelloKt $ main $ fibo $ 1.doResume(Hello.kt:7)     在   kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resume(CoroutineImpl.kt:54)     在   kotlin.coroutines.experimental.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:128)     在kotlin.sequences.TakeSequence $ iterator $ 1.hasNext(Sequences.kt:348)     在com.github.fdudannychen.HelloKt.main(Hello.kt:22)

this article中的步骤无助于解决问题。我不知道为什么它不起作用。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

问题已在KT-18026中报告,并且针对Kotlin版1.1.2-5标记为已修复