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(条件)中得到空指针异常
# 1 楼答案
用绳子=null不是字符串。等信号情况
# 2 楼答案
必须确保tv变量不为空。它可能会导致空指针异常,因为您必须将文本设置为空指针
# 3 楼答案
因为不能对null使用方法,所以首先应该检查对象是否为null
例如:
# 4 楼答案
避免使用toString(),只需执行null检查
还要确保指定了“电视”