gpt4 book ai didi

java - 字符串比较期间出现空指针异常

转载 作者:行者123 更新时间:2023-12-01 22:21:43 26 4
gpt4 key购买 nike

当将类引用传递给时,我收到java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“boolean java.lang.String.equals(java.lang.Object)”一个方法。导致错误的行是:

if (!contactData.getContactNo().equals("")){

更多代码:

方法调用:

recContDBHelper.insertRecord(new ContactData("", number, date)); <--Exception here

调用的方法:

 public void insertRecord(ContactData contactData) {
String name = "";
if (!contactData.getContactNo().equals("")) { <--exception here
name = CommonServices.getContactDisplayNameByNumber(contactData.getContactNo(), context);
if (name.equalsIgnoreCase("")) {
name = contactData.getContactNo();
}
}
}

上述代码中contactData.getContactNo()返回类型为String

异常(exception)是:

04-12 18:21:40.153: E/AndroidRuntime(27924): FATAL EXCEPTION: main
04-12 18:21:40.153: E/AndroidRuntime(27924): Process: com.stackoverflow.ranjith.androidprojdel, PID: 27924
04-12 18:21:40.153: E/AndroidRuntime(27924): java.lang.RuntimeException: Unable to start receiver com.stackoverflow.ranjith.androidprojdel.PhoneCallreceiver: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
04-12 18:21:40.153: E/AndroidRuntime(27924): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2586)
04-12 18:21:40.153: E/AndroidRuntime(27924): at android.app.ActivityThread.access$1700(ActivityThread.java:144)
04-12 18:21:40.153: E/AndroidRuntime(27924): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)
04-12 18:21:40.153: E/AndroidRuntime(27924): at android.os.Handler.dispatchMessage(Handler.java:102)
04-12 18:21:40.153: E/AndroidRuntime(27924): at android.os.Looper.loop(Looper.java:135)
04-12 18:21:40.153: E/AndroidRuntime(27924): at android.app.ActivityThread.main(ActivityThread.java:5221)
04-12 18:21:40.153: E/AndroidRuntime(27924): at java.lang.reflect.Method.invoke(Native Method)
04-12 18:21:40.153: E/AndroidRuntime(27924): at java.lang.reflect.Method.invoke(Method.java:372)
04-12 18:21:40.153: E/AndroidRuntime(27924): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
04-12 18:21:40.153: E/AndroidRuntime(27924): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
04-12 18:21:40.153: E/AndroidRuntime(27924): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
04-12 18:21:40.153: E/AndroidRuntime(27924): at com.stackoverflow.ranjith.androidprojdel.recentlyContacted.RecContDBHelper.insertRecord(RecContDBHelper.java:57)
04-12 18:21:40.153: E/AndroidRuntime(27924): at com.stackoverflow.ranjith.androidprojdel.PhoneCallreceiver.onReceive(PhoneCallreceiver.java:93)
04-12 18:21:40.153: E/AndroidRuntime(27924): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2579)
04-12 18:21:40.153: E/AndroidRuntime(27924): ... 9 more

ContactData 类:

public class ContactData {
private String contact_name;
private String ph_no;
private String time_call;

public ContactData(String contact_name, String ph_no, String time_call) {
this.contact_name = contact_name;
this.ph_no = ph_no;
this.time_call = time_call;
}

public ContactData(String contact_name, String ph_no) {
this.contact_name = contact_name;
this.ph_no = ph_no;
}

public String getContactNo() {
return this.ph_no;
}
}

最佳答案

试试这个

if (contactData.getContactNo() != null && !contactDate.getContactNo().isEmpty()) {
// your code here
}

似乎 contactData.getContactNo() 返回 null

关于java - 字符串比较期间出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590032/

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