在if语句中检查null是否在java中不起作用

时间:2013-07-10 15:17:22

标签: java android if-statement null arrays

这是我的if语句:

for(int i=0;i<SharedPrefsData.subscribers.length; i++){//loop through subscribers array
        if(SharedPrefsData.subscribers[i] == null ){//if string at index i is null
            SharedPrefsData.subscribers[i] = "";//make it empty string instead of null
        }

    }

我希望它遍历一个字符串数组并检查每个元素是否为null。我的阵列是:

[name_1, null, null, null, null, null, null, null, null, null, null, null, null, null, null]

然而它永远不会进入我的if语句的那一部分。如果有人可以提供帮助,我们将不胜感激。

编辑:我设置数组的代码:

public static String[] getPrefs(){
    String[] ToReturn;
    String tempString = settings.getString("123", "0");
    if(tempString == "0"){
        //show some type of error
        ToReturn = null;
    } else {
        ToReturn = tempString.split("@,#");
    }
    return ToReturn;


}

这是调用方法的语句:

SharedPrefsData.setSubscribers(SharedPrefsData.getPrefs());

settings是同一类SharedPreferences

中的字段

1 个答案:

答案 0 :(得分:0)

问题可能出在数据来源

SharedPrefsData.subscribers数组可能有'null'字符串而不是null。 试试吧

if(SharedPrefsData.subscribers[i] == null ||  SharedPrefsData.subscribers[i].equals("null"))

同样,问题可能在于源代码,如果问题由上述语句解决,则需要查看源代码并确保它不返回'null'字符串代替null对象