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”)传递的值
tofirstNameValidateUser
是null
,因为它没有任何值,我需要运行以下代码,其中包含String firstName=jsonObject.getString(“firstName”)
tillreturnedUser=新用户(名字、姓氏、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");
}