public static void main() {
 final Map mp1 = new HashMap();
 mp1.put("1", "key1");
 mp1.put("2", "key2");
 final Map mp2 = new HashMap();
 mp2.put("1", "key1");
 mp2.put("2", "key1");
 final Map mp3 = new HashMap();
 mp3.put("1", "key2");
 mp3.put("2", "key2");
 final List list = new ArrayList();
 list.add(mp1);
 list.add(mp2);
 list.add(mp3);
 for (int i = 0; i < list.size(); i++) {
   final HashMap hm = (HashMap) list.get(i);
   if ("key1".equals(hm.get("1")) || "key2".equals(hm.get("2"))) {
    continue; // ------AA
  }
 }
}在上面的例子里面在三个map调用时,都应该走到(AA)处,
应该运行continue这条语句,但是在地debug时,却走不到,
即单步调试时走不到,但是,在AA上面加一条语句:
如 System.out.println("---------");
 或  final int iii = 1;
   时就能走到,不知为什么那位达人帮一下。

解决方案 »

  1.   

    走是走过了的,不过在执行完if后,如果仅仅只有continue时,线程会自动帮你完成,在添加了一段程序,不管是放在前面还是后面,程序会继续按照单步执行,你可以尝试把断点设置在continue前面去看看
      

  2.   

    你加点代码就能单步调试到里面了.if ("key1".equals(hm.get("1")) || "key2".equals(hm.get("2"))) { 
           int a = 2;//加点代码
             continue; // ------AA 
           } 
      

  3.   

    没有玩过,帮你top ones!希望会的同仁,发表一下啦!
      

  4.   

    continue;代码已经执行了,只是调试的时候光标并不在这行显示而已。
      

  5.   

    是呀,我也知道跑过去了,可真的高不明白,总以为是java的一个漏洞