es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Kotlin Server Ktor Exposed: cómo utilizar campos opcionales nulos

Tengo esta función en mi aplicación Ktor + Exposed.

override suspend fun createNewCourse(course: CourseModel): Flow<coursemodel> {
    transaction {
        CoursesTable.insert {
            it[requiredCourseId] = course.requiredCourse?.id!!
            it[category] = course.category?.id!!
            it[isPopular] = course.isPopular == true
            it[position] =  course.position
            it[nameEN] = course.name.en
            it[warningEN] = course.warning.en
        }
    }
}

No compila.
A veces algunas variables (como “warningEN”) pueden ser nulas y no quiero insertar nada para este campo.

¿Cómo hacerlo?

Error de tipo.
Requerido: TypeVariable(S) Encontrado: String?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que hay una incompatibilidad de tipos entre los tipos esperados y reales de la variable “warningEN”. El tipo esperado no es nulo, pero el tipo real es nulo (String?).

    Para manejar los valores nulos para el campo “warningEN”, puedes utilizar el operador Elvis (?:) para proporcionar un valor predeterminado si la variable es nula. Por ejemplo, puedes modificar el código de la siguiente manera:

    it[warningEN] = course.warning?.en ?: ""
    

    Esto asignará una cadena vacía como valor para el campo “warningEN” si la propiedad “en” del objeto “warning” es nula. De lo contrario, asignará el valor real de “en”.

    Al utilizar el operador Elvis, puedes evitar insertar un valor nulo en la base de datos y asegurarte de que el campo siempre contenga un valor válido.

Comments are closed.