Пометить неиспользуемые параметры в 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 в случае, если параметр был нулевым и был помечен как ненулевой.

См. https://kotlinlang.org/docs/reference/lambdas.html.

Если функции являются частью класса, вы можете объявить содержащий класс 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 для вашего проекта или нет, решать только вам.

Другие вопросы по тегам