有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在比较字符串和null时显示异常

我的应用程序在比较字符串变量时显示空指针异常是否为空

我的错误堆栈跟踪如下所示

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.appovative.poi/com.appovative.places.SinglePlaceDetails}:       java.lang.NullPointerException
    at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
    at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
    at 安卓.app.ActivityThread.access$1500(ActivityThread.java:117)
    at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
    at 安卓.os.Handler.dispatchMessage(Handler.java:99)
    at 安卓.os.Looper.loop(Looper.java:130)
    at 安卓.app.ActivityThread.main(ActivityThread.java:3687)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
    at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:625)
    at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.NullPointerException
    at com.appovative.places.SinglePlaceDetails.onCreate(SinglePlaceDetails.java:73)
    at 安卓.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)

onCreate()方法中的我的代码

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    setContentView(R.layout.single_place_map);



    Intent intent = getIntent();
    PlaceLocation placeLoc = (PlaceLocation) intent
            .getSerializableExtra("Place");

    double lat = placeLoc.getLat();
    double lng = placeLoc.getLng();
    title = placeLoc.getTitle();
    vicinity = placeLoc.getVic();

    if(title.toString().length() != 0 && vicinity.toString().length()!= 0)
    {
        sbMsg.append(title.toString()).append("\n").append(vicinity.toString());
    }
    else if(!title.equalsIgnoreCase("null") && vicinity.equalsIgnoreCase("null")){
        sbMsg.append(title);
    }
}

我在if(条件)中得到空指针异常


共 (4) 个答案

  1. # 1 楼答案

    用绳子=null不是字符串。等信号情况

  2. # 2 楼答案

        if(title != null && vicinity != null)
        {
            if (tv != null) {
                tv.setText(title+ "\n"+vicinity);
            }
        }
    

    必须确保tv变量不为空。它可能会导致空指针异常,因为您必须将文本设置为空指针

  3. # 3 楼答案

    因为不能对null使用方法,所以首先应该检查对象是否为null

    例如:

    if(title != null && vicinity != null && tv != null)
    {
      tv.setText(title+ "\n"+vicinity);
    }
    
  4. # 4 楼答案

    避免使用toString(),只需执行null检查

    if(title != null && vicinity != null)
    {
        tv.setText(title+ "\n"+vicinity);
    }
    

    还要确保指定了“电视”