Kotlin抑制Android中已弃用的警告

64
在我的 Kotlin Android 项目中,我正在使用一个从 API 23 开始被废弃的函数,这是相当近期的。因此,我需要一种禁用这些废弃警告的方法。是否有一种简单的方法可以做到这一点?

如果您有兴趣抑制所有过时警告,请在 https://youtrack.jetbrains.com/issue/KT-8087 上点赞。 - TWiStErRob
2个回答

117

使用带参数"DEPRECATION"@Suppress注释:

@Suppress("DEPRECATION")
someObject.theDeprecatedFunction()

除了使用单个语句外,您还可以在函数、类或文件的开头使用注释标记一个函数、类或文件(使用@file:Suppress("DEPRECATION")),以抑制其中发出的所有过时警告。

在IntelliJ IDEA中,还可以通过将插入符号放置在具有过时警告的代码上并使用Alt+Enter菜单来完成此操作。


2
如果这是一个重写的函数,使用Alt+Enter会给你@Suppress("OverridingDeprecatedMember")。 - Aba
有没有一种方法可以仅针对一个方法抑制警告?我只在一个方法中使用了一个已弃用的类,但是 Kotlin 仍然会抱怨导入,除非我抑制整个文件。 - Magnus

25

Kotlin 中,

@SuppressWarnings

已更改为

@Suppress

为了移除被标记为过时的警告,您应该添加:

 @Suppress("DEPRECATION")
通过添加

来移除超级方法中的警告。
@Suppress("OverridingDeprecatedMember")

该函数的警告将被删除。 因此,完整的注释将是;

@Suppress("OverridingDeprecatedMember", "DEPRECATION")
作为补充说明,弃用应该写成"DEPRECATION"(使用大写字母)。

作为补充说明,弃用应该写成“DEPRECATION”(使用大写字母


2
请注意,弃用应该写成“DEPRECATION”(使用大写字母)。我认为这不是正确的。 - Pedro Oliveira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接