• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Kotlin @Suppress 的取值

武飞扬头像
guodongAndroid
帮助5

最近在 Kotlin 中使用 @Suppress 注解时不知道要填入哪些值。查找了一些资料,在这里记录一下。

@Suppress 注解如何使用,这里不再赘述。

@Suppress 注解的取值在 Kotlin 中称为编译器诊断名称。

话不多说,下面直接给出取值来源,目前笔者了解的来源主要有三个:

  1. Kotlin 编译器支持的诊断名称
  2. Kotlin 编译器插件扩展的诊断名称
  3. Java 编译器支持的部分诊断名称

下面对三个取值来源罗列一下:

Kotlin 编译器

Kotlin 编译器内置支持的诊断名称可以在编译器源码中找到,地址如下:

Kotlin 编译器插件

官方的 Kotlin 编译插件有的会扩展诊断名称,举几个例子:

Android Extensions Plugin

NoArg Plugin

Java 编译器

在 Java 中可以使用 @SuppressWarnings 注解,而 Kotlin 中的 @Suppress 注解支持 @SuppressWarnings 注解的部分诊断名称。至于具体支持哪些,没有查到相关资料,只能在实际使用时自己摸索了。

如何使用/找到正确的诊断名称

在实际使用时,如何才能使用/找到正确的诊断名称并给 @Suppress 注解传值呢?下面介绍两种笔者在实际使用过程中总结的经验:

  1. 根据 IDEA 或 Android Studio 的提示
  2. 在 Kotlin 编译器内置支持的诊断名称提示信息中搜索

IDEA / AS

如以下代码,编辑器会提示警告信息:

学新通

在提示的代码处使用快捷键 ALT ENTER 打开上下文菜单,选择 Suppress 'SameParameterValue' for parameter message

学新通

最后,代码如下所示,警告信息消失:

学新通

搜索 Kotlin 内置诊断名称

如以下代码,编辑器会提示警告信息:

学新通

这时候我们记录下提示的信息:"This class shouldn't be used in Kotlin",然后在 DefaultErrorMessages.java 中搜索:

学新通

我们可以在 DefaultErrorMessages.java 中搜索到对应的提示信息,其前面的参数就是诊断名称:PLATFORM_CLASS_MAPPED_TO_KOTLIN,把它填入 @Suppress 注解:

学新通

当然,对于 PLATFORM_CLASS_MAPPED_TO_KOTLIN,同样可以使用第一种方式:

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfgkjig
系列文章
更多 icon
同类精品
更多 icon
继续加载