调用方法时出现NoSuchMethodError

时间:2017-05-29 11:23:07

标签: kotlin

这是我正在运行的代码:

higherlevel.kt

fun main(args: Array<String>) {
    var app = App()
    app.fibonacci(8, object : Process {
        override fun execute(value: Int) {
            println(value)
        }
    })
}

interface Process {
    fun execute(value: Int)
}

class App {
    fun fibonacci(limit: Int, action: Process) {
        var prev = 0
        var prevprev = 0
        var current = 1

        for (i: Int in 1..limit) {
            action.execute(current)

            var temp = current
            prevprev = prev
            prev = temp
            current = prev + prevprev
        }
    }
}

当我运行此代码时,我收到此错误:

Exception in thread "main" java.lang.NoSuchMethodError: App.fibonacci(ILProcess;)V
    at HigherlevelKt.main(higherlevel.kt:3)

当我重新编译代码时,它运行得很好。

enter image description here

当我重建项目时&amp;再次运行程序,它会产生同样的错误。

enter image description here

真正发生了什么?

我使用的是IntelliJ IDEA 2017.1.1 EAP,&amp; Kotlin编译器版本 1.1.2-2

0 个答案:

没有答案