Ich definiere einige Funktionen, die als Rückrufe verwendet werden sollen, und nicht alle verwenden alle ihre Parameter.
Wie kann ich nicht verwendete Parameter markieren, damit der Compiler mich nicht warnt?
Antworten:
Mit der @Suppress
Anmerkung Sie können jede Diagnose für jede Deklaration oder jeden Ausdruck unterdrücken.
Beispiele: Warnung auf Parameter unterdrücken:
fun foo(a: Int, @Suppress("UNUSED_PARAMETER") b: Int) = a
Unterdrücken Sie alle UNUSED_PARAMETER-Warnungen in der Deklaration
@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) {}
}
}
Zusätzlich können die Absichten von IDEA (Alt + Enter) Ihnen helfen, jegliche Diagnose zu unterdrücken:
@Suppress("UNUSED_PARAMETER")
über die Methode setzen. So werden alle drei unbenutzten Argumente von insgesamt vier behandelt :)
Wenn sich Ihr Parameter in einem Lambda befindet, können Sie ihn mit einem Unterstrich weglassen. Dadurch werden die nicht verwendeten Parameterwarnungen entfernt. Es wird auch verhindert IllegalArgumentException
, dass der Parameter null war und als nicht null markiert wurde.
Siehe https://kotlinlang.org/docs/reference/lambdas.html#underscore-for-unused-variables-since-11
Wenn die Funktionen Teil einer Klasse sind, können Sie die enthaltende Klasse open
oder abstract
und die fehlerhaften Methoden als deklarieren open
.
open class ClassForCallbacks {
// no warnings here!
open fun methodToBeOverriden(a: Int, b: Boolean) {}
}
Oder
abstract class ClassForCallbacks {
// no warnings here!
open fun methodToBeOverriden(a: Int, b: Boolean) {}
}
Sie können diese Warnungen deaktivieren, indem Sie in build.gradle ein Kotlin-Kompilierungsoptionsflag hinzufügen. Verwenden Sie den Namen einer einzelnen Aufgabe, um sie zu konfigurieren. Beispiele:
compileKotlin {
kotlinOptions.suppressWarnings = true
}
compileKotlin {
kotlinOptions {
suppressWarnings = true
}
}
Es ist auch möglich, alle Kotlin-Kompilierungsaufgaben im Projekt zu konfigurieren:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
// ...
}
}
Wenn Sie Kotlin in Android verwenden und Warnungen des Kotlin-Compilers unterdrücken möchten, fügen Sie unten in der Datei build.gradle des App-Moduls hinzu
android{
....other configurations
kotlinOptions {
suppressWarnings = true
}
}
Ob Sie wirklich alle Kotlin-Warnungen für Ihr Projekt unterdrücken müssen oder nicht, liegt ganz bei Ihnen.
annotation class unused : suppress("UNUSED_PARAMETER")
aber es funktioniert nicht, weil es unterdrückt wird, endgültig zu sein.