我定义的一些功能将被用作回调,而不是所有的人都用自己的所有参数。
我怎样才能标记未使用的参数,这样编译器不会给我警告他们?
随着@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
,该参数为空,被标记为非空的情况。
见https://kotlinlang.org/docs/reference/lambdas.html#underscore-for-unused-variables-since-11
人们可以通过在的build.gradle加入科特林编译选项标志禁用这些警告。要配置一个任务,使用其名称。例子:
compileKotlin {
kotlinOptions.suppressWarnings = true
}
compileKotlin {
kotlinOptions {
suppressWarnings = true
}
}
也可以配置项目中的所有科特林编译任务:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
// ...
}
}
如果一个在Android中使用科特林,并希望抑制科特林编译器警告,在应用程序模块的build.gradle文件下添加
android{
....other configurations
kotlinOptions {
suppressWarnings = true
}
}
无论你真的需要抑制所有科特林预警为您的项目或没有,它取决于你。