在 Kotlin 中标记未使用的参数
Mark unused parameters in Kotlin
我正在定义一些用作回调的函数,但并非所有函数都使用它们的所有参数。
如何标记未使用的参数,以便编译器不会给我有关它们的警告?
使用 @Suppress
注释您可以禁止对任何声明或表达式进行任何诊断。
例子:
抑制参数警告:
fun foo(a: Int, @Suppress("UNUSED_PARAMETER") b: Int) = a
抑制声明中的所有 UNUSED_PARAMETER 警告
@Suppress("UNUSED_PARAMETER")
fun foo(a: Int, b: Int) {
fun bar(c: Int) {}
}
@Suppress("UNUSED_PARAMETER")
class Baz {
fun foo(a: Int, b: Int) {
fun bar(c: Int) {}
}
}
此外 IDEA 的意图 (Alt+Enter) 可以帮助您抑制任何诊断:
如果您的参数在 lambda 中,您可以使用下划线将其省略。这将删除未使用的参数警告。它还将防止 IllegalArgumentException
在参数为 null 且被标记为非 null 的情况下。
见https://kotlinlang.org/docs/reference/lambdas.html#underscore-for-unused-variables-since-11
可以通过在 build.gradle 中添加 kotlin 编译选项标志来禁用这些警告。
要配置单个任务,请使用其名称。示例:
compileKotlin {
kotlinOptions.suppressWarnings = true
}
compileKotlin {
kotlinOptions {
suppressWarnings = true
}
}
也可以在项目中配置所有Kotlin编译任务:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
// ...
}
}
如果有人在 Android 中使用 kotlin 并且想要抑制 kotlin 编译器警告,请在应用程序模块 build.gradle 文件
中添加以下内容
android{
....other configurations
kotlinOptions {
suppressWarnings = true
}
}
您是否真的需要为您的项目抑制所有 kotlin 警告,这取决于您。
如果函数是 class 的一部分,您可以将包含 class open
或 abstract
的函数声明为 open
。
open class ClassForCallbacks {
// no warnings here!
open fun methodToBeOverriden(a: Int, b: Boolean) {}
}
或者
abstract class ClassForCallbacks {
// no warnings here!
open fun methodToBeOverriden(a: Int, b: Boolean) {}
}
我正在定义一些用作回调的函数,但并非所有函数都使用它们的所有参数。
如何标记未使用的参数,以便编译器不会给我有关它们的警告?
使用 @Suppress
注释您可以禁止对任何声明或表达式进行任何诊断。
例子: 抑制参数警告:
fun foo(a: Int, @Suppress("UNUSED_PARAMETER") b: Int) = a
抑制声明中的所有 UNUSED_PARAMETER 警告
@Suppress("UNUSED_PARAMETER")
fun foo(a: Int, b: Int) {
fun bar(c: Int) {}
}
@Suppress("UNUSED_PARAMETER")
class Baz {
fun foo(a: Int, b: Int) {
fun bar(c: Int) {}
}
}
此外 IDEA 的意图 (Alt+Enter) 可以帮助您抑制任何诊断:
如果您的参数在 lambda 中,您可以使用下划线将其省略。这将删除未使用的参数警告。它还将防止 IllegalArgumentException
在参数为 null 且被标记为非 null 的情况下。
见https://kotlinlang.org/docs/reference/lambdas.html#underscore-for-unused-variables-since-11
可以通过在 build.gradle 中添加 kotlin 编译选项标志来禁用这些警告。 要配置单个任务,请使用其名称。示例:
compileKotlin {
kotlinOptions.suppressWarnings = true
}
compileKotlin {
kotlinOptions {
suppressWarnings = true
}
}
也可以在项目中配置所有Kotlin编译任务:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
// ...
}
}
如果有人在 Android 中使用 kotlin 并且想要抑制 kotlin 编译器警告,请在应用程序模块 build.gradle 文件
中添加以下内容android{
....other configurations
kotlinOptions {
suppressWarnings = true
}
}
您是否真的需要为您的项目抑制所有 kotlin 警告,这取决于您。
如果函数是 class 的一部分,您可以将包含 class open
或 abstract
的函数声明为 open
。
open class ClassForCallbacks {
// no warnings here!
open fun methodToBeOverriden(a: Int, b: Boolean) {}
}
或者
abstract class ClassForCallbacks {
// no warnings here!
open fun methodToBeOverriden(a: Int, b: Boolean) {}
}