Java:True如果For循环中的语句导致循环中断,但不执行块

Java:True如果For循环中的语句导致循环中断,但不执行块,java,android,Java,Android,这是我第一次在这里发帖,但我在写作之前做了很多研究。我试图使用String.equals()比较字符串,并且(使用正确的数据)比较结果为true。我甚至加入了一个布尔值来检查它。但是,它不执行If块的内容,而是退出For循环并返回null: public WeatherInfo getWeather (Date date, ArrayList<WeatherInfo> weather) { SimpleDateFormat sdf = new SimpleDateFormat

这是我第一次在这里发帖,但我在写作之前做了很多研究。我试图使用
String.equals()
比较字符串,并且(使用正确的数据)比较结果为
true
。我甚至加入了一个布尔值来检查它。但是,它不执行If块的内容,而是退出For循环并返回null:

public WeatherInfo getWeather (Date date, ArrayList<WeatherInfo> weather) {
    SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy");
    String eventDate = sdf.format(date);
    for (WeatherInfo w : weather) {
        Date wDate = new Date(w.getEpoch() * 1000);
        String weatherDate = sdf.format(wDate);
        if (weatherDate.equals(eventDate)) {
            return w;
        }
    }
    return null;
}
public WeatherInfo getWeather(日期、数组列表天气){
SimpleDataFormat sdf=新的SimpleDataFormat(“MMM dd yyyy”);
字符串eventDate=sdf.format(日期);
用于(天气信息w:天气){
日期wDate=新日期(w.getEpoch()*1000);
字符串weatherDate=sdf.format(wDate);
if(天气日期等于(事件日期)){
返回w;
}
}
返回null;
}
有人知道是什么导致了这一切吗

这里是真实评估时相关变量的屏幕截图(测试是检查布尔值)

您输入布尔值来检查它是什么意思?你确定
weather
中确实有什么东西吗?我创建了一个布尔值,在If得到它之前,它对If语句正在计算的同一个语句求值。当语句的计算结果应为True时,布尔值会确认它。我还检查了weather的内容,当它进入For循环时,它包含10个WeatherInfo对象。也许你应该发布打印
true
的版本,以防测试出错。(这种情况经常发生。我添加了打印值的代码,然后疯狂地试图找出哪里出了问题,直到我意识到打印值的代码出错。)好的,你怎么知道它返回了
null
?调用
getWeather
的代码是否可能没有正确使用结果?ajb是正确的,有点。。。我依靠Eclipse调试来显示函数返回的内容,它一直绕过“return w”行并执行“return null”行,但之后,代码实际上返回了w。谢谢大家,抱歉误报。日食时握手