Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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 为什么if条件会以另一种方式运行_Java_If Statement_Null - Fatal编程技术网

Java 为什么if条件会以另一种方式运行

Java 为什么if条件会以另一种方式运行,java,if-statement,null,Java,If Statement,Null,从jsonObject.getString(“firstName”)传递的值tofirstNameValidateUser是null,因为它没有任何值,我需要运行以下代码,其中包含String firstName=jsonObject.getString(“firstName”)tillreturnedUser=新用户(名字、姓氏、User.userName、User.password、生日、职位、资格、电子邮件)当firstNameValidateUser的值为null时。如何检查它,我使用了

jsonObject.getString(“firstName”)传递的值
to
firstNameValidateUser
null
,因为它没有任何值,我需要运行以下代码,其中包含
String firstName=jsonObject.getString(“firstName”)
till
returnedUser=新用户(名字、姓氏、User.userName、User.password、生日、职位、资格、电子邮件)
firstNameValidateUser
的值为
null
时。如何检查它,我使用了
if
条件来检查
firstNameValidateUser
是否为
null
,但从输出来看,它似乎是反方向工作的。如果我的
状况有问题,或者如果我犯了任何其他错误,请通知我。。请帮我把这个修好。先谢谢你

firstNameValidateUser=jsonObject.getString("firstName");
// if there are no details are send through the JSON object,
Log.e("jsonObjectlength",jsonObject.length()+"");
Log.e("firstName",firstNameValidateUser);
String usedToCheck=null;
if (firstNameValidateUser!=null && !firstNameValidateUser.isEmpty()) {
    Log.e("firstName","firstName is not null");
    String firstName = jsonObject.getString("firstName");
    String lastName = jsonObject.getString("lastName");
    //String username=jsonObject.getString("username");
    //String password=jsonObject.getString("password");
    String position=jsonObject.getString("position");
    String qualification=jsonObject.getString("qualification");
    String birthDate=jsonObject.getString("birthDate");
    String email=jsonObject.getString("email");
    returnedUser = new User(firstName, lastName, user.userName, user.password, birthDate, position,qualification,email);
    //values are sent to the returnedUser Object
} else {
    Log.e("is Empty","firstName is null");
    returnedUser = null;
}
错误条件:

尝试:

原因:

True && True == True
True && False == False

因此,从第二种情况来看,如果第二个值为False,它将不会进入if条件。

因此,在代码编辑之后,它看起来很好,但是如果错误仍然存在,那么我建议您检查下一行是否真的返回了一些内容

firstNameValidateUser=jsonObject.getString("firstName");
(只需使用:
console.log()
让它显示在控制台中即可)
如果没有返回任何内容,则问题可能出在检索字符串或设置字符串的代码中

最简单的检查方法是使用本机API

if (jsonObject.isNull("firstName")) {
    Log.e("is Empty","firstName is null");
} else {
    Log.e("firstName","firstName is not null");
}
请参阅android API

firstNameValidateUser==null&&!firstNameValidateUser.isEmpty()
,没有意义如果
firstNameValidateUser
null
,为什么要对其调用
isEmpty()
。现在您更改了代码,所以您的问题就没有意义了。如果变量为null,代码将转到else子句。条件正确,firstNameValidateUser=null为确保对象firstNameValidateUser不为null,然后使用!用于检查字符串是否为空字符串的firstNameValidateUser.isEmpty()。如果更改代码,该条件将导致NullPointerException。
if (jsonObject.isNull("firstName")) {
    Log.e("is Empty","firstName is null");
} else {
    Log.e("firstName","firstName is not null");
}