代码之家  ›  专栏  ›  技术社区  ›  Jesse Wilson

抑制Kotlin中的DeprecationLevel.ERROR

  •  0
  • Jesse Wilson  · 技术社区  · 5 年前

    我正在使用 DeprecationLevel.ERROR 在我的API中:

    @Deprecated(
        message = "moved to def()",
        replaceWith = ReplaceWith(expression = "def()"),
        level = DeprecationLevel.ERROR)
    fun abc() = def()
    

    我需要一个测试,以确保来电者看到这个替代品。例如,如果我不小心删除了 abc()

    但是我找不到一个方法来编译这个:

    @Test
    @Suppress("something")
    fun deprecatedAbc() {
      abc()
    }
    

    例如, @Suppress("DEPRECATION")

    0 回复  |  直到 5 年前
        1
  •  5
  •   IlyaMuravjov    5 年前

    根据 DefaultErrorMessages @Suppress("DEPRECATION_ERROR") .

        2
  •  0
  •   TheOperator    5 年前

    documentation 属于 @Deprecated :

    为了帮助逐渐删除不推荐使用的API,可以使用属性级别。通常,逐步淘汰经历“警告”、“错误”、“隐藏”或“删除”阶段:

    • DeprecationLevel.WARNING 用于通知API使用者,但不中断其编译或运行时使用。
    • 然后,一段时间后,弃用级别提高到 DeprecationLevel.ERROR 这样就没有新的Kotlin代码可以使用不推荐使用的API编译 .

    代码 不按设计编译 --以及 @Suppress 仅抑制警告,不抑制错误(请参见 doc ).

    行为 替换的名称。