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

时间:2016-03-14 08:12:27

标签: java if-statement null

jsonObject.getString("firstName");传递到firstNameValidateUser的值为null,因为它没有任何值,我需要运行包含String firstName=jsonObject.getString("firstName");....的以下代码当returnedUser = new User(firstName, lastName, user.userName, user.password, birthDate, position,qualification,email);的值为firstNameValidateUser时,null。我如何检查它,我使用if条件来检查firstNameValidateUser是否null,但是从输出看起来它似乎正在反过来。我的if条件有问题,或者如果我有任何其他错误,请通知我..请帮我解决这个问题。提前谢谢。

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;
}

3 个答案:

答案 0 :(得分:0)

错误的条件:

尝试:

if (firstNameValidateUser!=null || !firstNameValidateUser.isEmpty()) {
    // Rest of your code.
}

原因:

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

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

答案 1 :(得分:0)

所以在代码编辑之后它看起来很好,但是如果错误仍然存​​在,那么我建议你检查以下行是否实际上返回了什么。

firstNameValidateUser=jsonObject.getString("firstName");

(只需让它显示在控制台中使用:console.log()) 如果没有返回任何问题,那么问题可能在于检索字符串的代码或设置字符串的代码。

答案 2 :(得分:0)

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

if (jsonObject.isNull("firstName")) {
    Log.e("is Empty","firstName is null");
} else {
    Log.e("firstName","firstName is not null");
}

请参阅android API http://developer.android.com/reference/org/json/JSONObject.html#isNull(java.lang.String)