intellij中不推荐使用的ReplaceWith在Kotlin中如何工作?

时间:2018-09-06 11:13:15

标签: intellij-idea kotlin

我写了这段代码:

@Deprecated("Old stuff", ReplaceWith("test2"))
fun test1(i: Int) {
    println("old Int = $i")
}

fun test2(i: Int) {
    println("new Int = $i")
}

fun main(args: Array<String>) {
    test1(3)
}

由于某种原因,当我按Alt + Enter并单击“用test2替换”时,方法test1消失了并且没有被替换,我在做什么错了?

编辑:

它确实适用于课程:

@Deprecated("Old stuff", ReplaceWith("Test2"))
class Test1
class Test2

fun main(args: Array<String>) {
    val a = Test1()
}

1 个答案:

答案 0 :(得分:3)

您需要说明如何准确地替换它...虽然我不知道为什么它被完全删除了,但我将向您展示我的意思:

如果要改用以下内容:

@Deprecated("Old stuff", ReplaceWith("test2(i)"))

它将正确替换您对test1(5)的{​​{1}}呼叫。

还请注意,有时,如果您不清楚应该进行哪个替换,则可能还需要添加软件包名称,例如:

test2(5)

如果需要,还可以在替换中使用静态值。