如何为kotlin中的函数参数设置不为null

我在Kotlin创建了一个函数。 它validation电子邮件和密码字段。 我想申请电子邮件和密码不应该为空。 @NotNull有点注释在这里。

有没有人知道如何在Kotlin做到这一点? 所以调用者不能发送空值。

 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将所有types区分为可为空不可空的 。 例如,类String可以用于Stringtypes,不能为空,typesString? ,它是可以为空的,即可以为null

在你的例子中,不使用可为空的types,所以你都很好 – 不需要额外的注释。

应该研究文件的进一步信息。

Kotlin具有内置的安全性。 String是一个非空types,而String? 是可以空的types。 所以, isEmailAndPasswordValid(email: String, password: String)将强制传递给它的值是非空的。

Kotlin语言在默认情况下是无效的,所以当创建一个新的variables时,它不能为null,但是当你想要一个可为null的variables时,你可以添加感叹号来指定它可以为null,例如String ?, Int? …

不可空

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

可空types

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

如果你想调用可空types的函数,你应该使用更大的空值variables(1)或使用安全调用(2)

当我检查Kotlin文档时,我可以看到一个Stringvariables不能被设置为null,除非你声明它是可以的,并且你的编译器会产生一个错误。

例如,一个Stringtypes的正则variables不能为空

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