gpt4 book ai didi

java - if(usersData.getNumber().equals(number)){ NullPointerException

转载 作者:行者123 更新时间:2023-12-01 23:16:30 24 4
gpt4 key购买 nike

每当我尝试登录以启动 HomeActivity 时,即使我仔细检查了用户中的 Getters 和 Setters,我也会收到此错误。我认为这可能与下面提到的这段代码有关。它表明.getNumber可能会产生NullPointerException。

if(usersData.getNumber().equals(number)){

这是我的 LoginActivity 的 fragment

            if(dataSnapshot.child(parentDbName).child(number).exists())
{
Users usersData = dataSnapshot.child(parentDbName)
.child(number).getValue(Users.class);

if(usersData.getNumber().equals(number))
{
if(usersData.getPw().equals(pw))
{
Toast.makeText(Login.this, "Logged In Successfuly!", Toast.LENGTH_SHORT).show();
prog1.dismiss();

每次我尝试使用 Firebase 中存储的现有帐户登录时,都会显示

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference

这是我在 Users.java 中生成的

package com.robihidquicaygabinvalencia.ecommerce.shopmore.Model;

public class Users
{
private String name, number, pw;

public Users()
{

}

public Users(String name, String number, String pw) {
this.name = name;
this.number = number;
this.pw = pw;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getNumber() {
return number;
}

public void setNumber(String number) {
this.number = number;
}

public String getPw() {
return pw;
}

public void setPw(String pw) {
this.pw = pw;
}
}

这是我在 Logcat 中得到的内容。

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at com.robihidquicaygabinvalencia.ecommerce.shopmore.Login$2.onDataChange(Login.java:83)
at com.google.firebase.database.Query$1.onDataChange(com.google.firebase:firebase-database@@19.1.0:179)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.1.0:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.1.0:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.1.0:55)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

最佳答案

你是对的。 getNumber() 返回 null。这可能意味着数据库中您要转换为 Users 对象的位置没有值,但由于您没有在您正在读取的位置显示确切的数据,因此无法确定。无论如何,您应该在对结果调用 toString() 之前检查这一点。

关于java - if(usersData.getNumber().equals(number)){ NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58350903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com