Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何避免空指针异常导致我的应用程序崩溃?_Java_Android_Android Studio - Fatal编程技术网

Java 如何避免空指针异常导致我的应用程序崩溃?

Java 如何避免空指针异常导致我的应用程序崩溃?,java,android,android-studio,Java,Android,Android Studio,对于新用户,ret_idx可能为空,因为它在数据库中的条目未创建。因此,每当应用程序检测到ret_idx为null时,就会显示java.lang.NullPointerException。考虑到在某些情况下,ret_idx可能会变成null,如何避免此异常导致我的应用程序崩溃 String ret_idx=dataSnapshot.child(“name”).getValue().toString()检查输入数据是否为空,如果不是空,则将其分配给ret_idx if(dataSnapshot.c

对于新用户,ret_idx可能为空,因为它在数据库中的条目未创建。因此,每当应用程序检测到ret_idxnull时,就会显示java.lang.NullPointerException。考虑到在某些情况下,ret_idx可能会变成null,如何避免此异常导致我的应用程序崩溃


String ret_idx=dataSnapshot.child(“name”).getValue().toString()

检查输入数据是否为空,如果不是空,则将其分配给ret_idx

if(dataSnapshot.child("name").getValue() != null){
   String ret_idx=dataSnapshot.child("name").getValue().toString();
}

你说的避免这个错误是什么意思?如果该值可能变为null,而您得到的是null,则I\n这不是错误。无论您接下来在哪里使用ret_idx,都会检查空值,比如if(ret_idx!=null),然后做一些您想做的事情。@SurabhiChoudhary我已经尝试了if(ret_idx!=null)和if(!ret_idx.isEmpty())这两种方法,它们工作得很好。问题在于将ret_idx赋值为null,并检查是(ret_idx==null)还是(ret_idx.isEmpty())。当从数据库检索null并将其分配给String ret_idx时,应用程序崩溃。老实说,处理可能的null指针异常的最佳方法是确保您使用的对象在使用时不为null。绝对@a_local_nobody,但我还能从数据库中不存在的记录中期待什么呢?不存在的记录总是会给出一个空值,我假设…@TheScribleR2019为了避免空值异常,您不应该使用try-catch,而应该在必要时进行空值检查(或者尝试完全避免空值)。这会使相同的数据库查找两次效率低下。保存第一个返回值。