Пометить неиспользуемые параметры в Kotlin
Я определяю некоторые функции, которые будут использоваться как обратные вызовы, и не все из них используют все свои параметры.
Как пометить неиспользуемые параметры, чтобы компилятор не предупреждал меня о них?
3 ответа
С @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) могут помочь вам отключить любую диагностику:
Если ваш параметр в лямбде, вы можете использовать подчеркивание, чтобы пропустить его. Это удаляет предупреждения о неиспользованных параметрах. Это также предотвратит IllegalArgumentException
в случае, если параметр был нулевым и был помечен как ненулевой.
Если функции являются частью класса, вы можете объявить содержащий класс
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) {}
}
Можно отключить эти предупреждения, добавив флаг опции компиляции kotlin в build.gradle. Чтобы настроить одну задачу, используйте ее имя. Примеры:
compileKotlin {
kotlinOptions.suppressWarnings = true
}
compileKotlin {
kotlinOptions {
suppressWarnings = true
}
}
Также можно настроить все задачи компиляции Kotlin в проекте:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
// ...
}
}
Если кто-то использует kotlin в Android и хочет отключить предупреждения компилятора kotlin, добавьте ниже в файл app-module build.gradle
android{
....other configurations
kotlinOptions {
suppressWarnings = true
}
}
Нужно ли вам подавлять все предупреждения kotlin для вашего проекта или нет, решать только вам.