我在Kotlin
创建了一个功能。它验证电子邮件和密码字段。我想申请电子邮件和密码不应该为空。 @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
}
答案 0 :(得分:2)
Kotlin通过 nullable 和 not-nullable 来区分所有类型。例如,类String
可用于不可为空的类型String
,以及可以为空的类型String?
,即可以保留null
。
在你的例子中,没有使用可空类型,所以你们都很好 - 不需要额外的注释。
应研究documentation以获取更多信息。
答案 1 :(得分:2)
Kotlin内置无效安全性。 String
是非null类型,而String?
是可空类型。因此,isEmailAndPasswordValid(email: String, password: String)
将强制传递给它的值为非null。
答案 2 :(得分:2)
Kotlin语言默认是null安全的,所以在创建新变量时它不能为null,但是当你想要一个可以为null的变量时,你可以添加感叹号来指定它对于Example String?来说可以为null,诠释? ...
不可空
var a: String = "bachiri"
a = null // compilation error
Nullable Type
var a: String? = "bachiri"
a = null // OK
并且如果你想在可空类型上调用一个函数,你应该使用eighter检查null变量(1)或使用安全调用(2)
答案 3 :(得分:1)
当我检查Kotlin文档时,我可以看到String变量不能设置为null,除非你声明它可以,并且你的编译器会引发错误。
例如,String类型的常规变量不能保存null