断点没有在Intellij的Kotlin回调中被击中

时间:2017-01-19 11:55:52

标签: intellij-idea kotlin breakpoints

在下面的代码中,我在println("yoyo")所在的行上放置了一个断点,但它没有被击中。这是在IntelliJ IDEA 2016.2.5上 Build#IC-162.2228.15,建于2016年10月14日。我该如何解决这个问题?

class XxxTest {
    @Test
    fun xxx(){
        object : dummyInterface{
            override fun bbb() {
                println("yoyo")
            }

        }
    }

    interface dummyInterface{
        fun bbb()
    }
}

1 个答案:

答案 0 :(得分:2)

您的函数xxx使用Object Expression创建一个继承自dummyInterface的匿名类的对象。问题是你没有在任何地方使用这个对象,你也没有存储它的引用,因此它只是创建并且从未被调用过。

要使调试在断点处停止,您必须实际调用该方法。

val obj = object : dummyInterface {
    override fun bbb() {
        println("yoyo")
    }
}
obj.bbb()