Markieren Sie nicht verwendete Parameter in Kotlin


78

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:


124

Mit der @SuppressAnmerkung 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:


1
Vielen Dank. Gibt es eine Möglichkeit, es auf [unbenutzt] oder so zu verkürzen? Ich habe es versucht, annotation class unused : suppress("UNUSED_PARAMETER")aber es funktioniert nicht, weil es unterdrückt wird, endgültig zu sein.
TheTeaMan

Sie sollten in der Lage sein, die Klammern wegzulassen, die zwei Zeichen speichern :)
Kirill Rakhman

Zusätzlich können Sie Anmerkungsparameter extrahieren und freigeben.
Bashor

Mein Kommentar galt für die alte, jetzt entfernte Anmerkungssyntax und ist nicht mehr gültig.
Kirill Rakhman

Ich hatte Listener-Methoden mit mehreren Argumenten und nur eines wurde verwendet. Ich konnte @Suppress("UNUSED_PARAMETER")über die Methode setzen. So werden alle drei unbenutzten Argumente von insgesamt vier behandelt :)
ecth


0

Wenn die Funktionen Teil einer Klasse sind, können Sie die enthaltende Klasse openoder abstractund 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) {}
}

-5

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.


21
Warum sollte jemand die Warnung für das gesamte Projekt unterdrücken? Es ist keine gute Praxis.
Xenolion
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.