Cómo establecer no nulo para params de funciones en kotlin

Estoy creando una function en Kotlin . Valida los campos de correo electrónico y contraseña. Quiero aplicar el correo electrónico y la contraseña no debe ser nula. @NotNull algo anotación aquí.

¿Alguien sabe cómo hacer esto en Kotlin ? Entonces la persona que llama no puede enviar el valor nulo.

 private fun isEmailAndPasswordValid(email: String, password: String): Boolean { if (email.isEmpty()) return false if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) return false if (password.isEmpty()) return false return true } 

Kotlin diferencia a todos los types de nulos y nulos . Por ejemplo, la class String se puede usar para el tipo String , que no puede contener nulos, y el tipo String? , que ES NULABLE, es decir, podría contener null .

En su ejemplo, no se usan types anulables, por lo que está todo bien, no se necesita anotación adicional.

La documentation debe estudiarse para get más información.

Kotlin tiene una security nula incorporada. String es un tipo no nulo mientras String? es un tipo que admite nulos Por lo tanto, isEmailAndPasswordValid(email: String, password: String) hará cumplir que el valor que se le pasó no es nulo.

El lenguaje de Kotlin es por defecto nulo, así que cuando se crea una nueva variable no puede ser nulo, pero cuando se quiere una variable que puede ser anulada, se puede agregar el signo de exclamación para especificar que puede ser nulo para Example String ?, Int? …

No se puede anotar

 var a: String = "bachiri" a = null // comstacktion error 

Tipo anulable

 var a: String? = "bachiri" a = null // OK 

y tenga en count que si desea llamar a una function del Tipo que admite nulos, debe usar antes la marca de variable nula (1) o usar las llamadas seguras (2)

Cuando reviso la documentation de Kotlin, puedo ver que una variable String no se puede establecer en nulo, a less que usted declare que sí puede hacerlo, y su comstackdor generará un error.

Por ejemplo, una variable regular de tipo String no puede contener null

https://kotlinlang.org/docs/reference/null-safety.html

  • ¿Por qué puedo definir una var sin una class en Kotlin?
  • Spring Boot no actualiza el html estático (con Kotlin / Intellij)
  • ¿Cómo ocultar el button inferior cuando el keyboard está abierto en kotlin?
  • Usar un Flux en lugar de un bucle for, ¿algún beneficio?
  • ¿Por qué no se reorganiza el código de trabajo en los files de Kotlin en Intellij?
  • ¿Cuál es la forma correcta de usar una comparación "mayor que" o "menor que" en integers nulables en Kotlin?
  • La secuencia de escritura de Android en el file tarda demasiado
  • Convierte XML a Anko DSL
  • Problema de context al usar Anko DSL dentro del adaptador personalizado para ListView
  • Kotlin replace isEmpty () y last () con lastOrNull () dentro de una Collection
  • ¿Se puede utilizar javascript generado a partir de fonts de Kotlin en JVM?