Neckar IT Logo
Kontakt aufnehmen
Förderfähig 2026 Ihr Software-Prototyp in 2 Wochen — bis 50 % staatlich gefördert
← Alle Artikel

[Kotlin] Varags und nullable Types

Johannes Schneider ·

Gerade eben hatte ich den Fall, dass ich einen nullable Type als Parameter an eine varags-Methode übergeben wollte.
Der varargs-Typ ist aber natürlich nicht nullable.

fun methodWithVarargs(vararg names: String) {[…]}

val nameOrNull: String? = null
methodWithVarargs(nameOrNull) //Does NOT compile!

Was also tun?

Die Lösung

Für Listen gibt es die schöne Methode listOfNotNull(). Leider noch nicht für Arrays.
Deshalb habe ich mir eine kleine Extension-Methode erstellt:

/**
 * Returns an array that contains this (if not null) or is empty (if this == null)
 */
inline fun <reified T> T?.arrayOfNotNull(): Array<T> {
  return if (this != null) arrayOf(this) else emptyArray()
}

Bitte beachten: “reified” ist notwendig, da in der Methode ein Array vom konkreten Type erzeugt wird. (Bei Listen ist die Typinformation zur Laufzeit dagegen nicht enthalten).

Haben Sie auch einen Wunsch?

Erzählen Sie uns von Ihrem Projekt.

Erstberatung anfragen

Antwort innerhalb eines Werktags