0

我有这个 if 语句,当我使用 JOptionPane.showMessageDialog(如代码顶部所示)检查时返回 false,但该块仍被执行。我看不出我应该做些什么不同的事情。

变量:

  • c = 公历
  • s = 字符串
  • h = HashMap-array - 字符串、日期
  • oldGoods1、2 和 3 = HashMaps - 字符串、日期

代码:

JOptionPane.showMessageDialog(null, c.after((Date) h[counter].get(s)));
if(c.after((Date) h[counter].get(s))); //this line
{
  Calendar today = Calendar.getInstance();
  if(today.after((Date) h[counter].get(s)))
  {
    GoodsList.removeDate(s, (Date) h[counter].get(s));
  }
  if(!oldGoods1.containsKey(s)) 
  {
    oldGoods1.put(s, (Date) h[counter].get(s));
  }
  else if(!oldGoods2.containsKey(s))
  {
    oldGoods2.put(s, (Date) h[counter].get(s));
  }
  else if(!oldGoods3.containsKey(s))
  {
    oldGoods3.put(s, (Date) h[counter].get(s));
  }
}

预先感谢 Highace2

4

1 回答 1

9
if(c.after((Date) h[counter].get(s)));  // The `;` is the culprit. Remove it.

的末尾有一个分号if statement,它仅终止if statement那里,并且后面的块只是一个本地块,无论条件评估为什么,总是会执行。

于 2013-02-14T23:47:49.213 回答