这是我的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
答案 0 :(得分:0)
问题可能出在数据来源
SharedPrefsData.subscribers数组可能有'null'字符串而不是null。 试试吧
if(SharedPrefsData.subscribers[i] == null || SharedPrefsData.subscribers[i].equals("null"))
同样,问题可能在于源代码,如果问题由上述语句解决,则需要查看源代码并确保它不返回'null'字符串代替null对象