Я визначаю деякі функції, які використовуватимуться як зворотні виклики, і не всі з них використовують усі свої параметри.
Як я можу позначити невикористані параметри, щоб компілятор не давав мені попереджень про них?
Відповіді:
За допомогою @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) можуть допомогти вам придушити будь-яку діагностику:
@Suppress("UNUSED_PARAMETER")
вище метод. Таким чином , всі три невикористовувані аргументи чотири в загальній складності покриті :)
Якщо ваш параметр знаходиться в лямбда-точці, ви можете використовувати підкреслення, щоб опустити його. Це видаляє попередження про невикористані параметри. Це також запобіжить IllegalArgumentException
у випадку, якщо параметр був нульовим і був позначений як ненульовий.
Див. Https://kotlinlang.org/docs/reference/lambdas.html#underscore-for-unused-variables-since-11
Якщо функції є частиною класу, ви можете оголосити вміщуючий клас 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 для вашого проекту чи ні, це вирішувати вам.
annotation class unused : suppress("UNUSED_PARAMETER")
але це не працює через придушення остаточності.