处理可在kotlin中返回null的对象
我有java代码,我正在为我的项目转换成Kotlin处理可在kotlin中返回null的对象,kotlin,kotlin-null-safety,Kotlin,Kotlin Null Safety,我有java代码,我正在为我的项目转换成Kotlin Android Studio 3.0 我将其转换为koklin,如下所示: public String getAuthUserEmail() { FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); String email = null; if (user != null) { email =
Android Studio 3.0
我将其转换为koklin,如下所示:
public String getAuthUserEmail() {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String email = null;
if (user != null) {
email = user.getEmail();
}
return email;
}
fun getAuthUserEmail(): String? {
return FirebaseAuth.getInstance().currentUser.email?
}
我只是想知道在我的kotlin版本中,用户是否恰好为null。我是否需要一个if条件来检查用户是否为null
我可以把这个函数作为一行
fun getAuthUserEmail(): String? {
val user: FirebaseUser? = FirebaseAuth.getInstance().currentUser
return user?.email
}
调用函数是否需要处理函数返回的空字符串
非常感谢你的建议
我是否需要一个if条件来检查用户是否为null
根据Firebase的文件:
返回当前登录的FirebaseUser,如果没有,则返回null
使用getCurrentUser()!=null以检查用户是否已登录
因此,这取决于您在没有登录用户时希望如何处理
如果希望函数是单行的,可以按如下方式链接它:
public String getAuthUserEmail() {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String email = null;
if (user != null) {
email = user.getEmail();
}
return email;
}
fun getAuthUserEmail(): String? {
return FirebaseAuth.getInstance().currentUser.email?
}
如果currentUser
为null或currentUser?,则返回null。电子邮件
为null
编辑:如果你只是想返回电子邮件,如果它存在。把它写在一行是可以的,因为它可以链接起来。小建议。如果您确定对象不应该为null,但可以为null,请使用
将对象标记为不应为null的对象。若应用程序崩溃了,那个也没关系,因为它表明你们在某个地方做了不好的实现。查看实现的结构以了解对象是否应为null,许多开发人员过度使用objet?。让不要查看此对象是否应为null
我只是想知道在我的kotlin版本中,用户是否碰巧是
无效的我是否需要一个if条件来检查用户是否
空的
取决于您将如何处理场景,但您可以形成
您的数据如下所示:
fun getAuthUserEmail(): String? {
return FirebaseAuth.getInstance().currentUser?.email
}