Kotlin vararg: ¿cómo establecer nulo en vararg sin lanzar NullPointerException?
Mi función:
fun func(vararg objects: Any?) {
}
Cuando llamo a func(null)
, obtengo la excepción: Excepción causada por: NullPointerException: Parámetro especificado como no nulo es nulo: método kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parámetro objects.
Y vi el código decompilado en Java, el cual es el siguiente:
public static final void func(@NotNull Object... objects) {
Intrinsics.checkNotNullParameter(objects, "objects");
printer.v(new Object[]{objects});
}
¿Existe alguna forma de solucionar esto?
davy.ai
Sí, una solución es agregar la anotación
@Nullable
al parámetro en la definición de la función de esta manera:Esto le indica al compilador que el parámetro puede ser nulo y evita la
NullPointerException
al pasar valores nulos.Alternativamente, también puedes usar el operador de llamada segura (?.) al acceder al parámetro para evitar la excepción:
Esto verifica si el parámetro es nulo antes de acceder a él y solo ejecuta el código si no es nulo.