A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//迭代器
import java.util.*;
class  IteratorDemo
{
public static void main(String[] args)
{
  ArrayList al = new ArrayList();
  al.add("java01");
  al.add("java02");
  al.add("java03");
  al.add("java04");
/*
  Iterator it = al.iterator();//获取迭代器,用于取出集合中的元素。
  while (it.hasNext())//返回boolean型 判断集合中是否有元素。
  {
   sop(it.next());//取出集合中的元素。一个一个取。
  }
*/
  for (Iterator it = a1.iterator(); it.hasNext() ; )
  {
   sop(it.next());
  }
  
}
public static void sop(Object obj)
{
  System.out.println(obj);
}
}
在编译时出错了 ,可还是能打印出来。为什么啊  好奇怪的、


R4(DEV[SJ]NCE17P196$~YV.jpg (36.26 KB, 下载次数: 28)

R4(DEV[SJ]NCE17P196$~YV.jpg

评分

参与人数 1技术分 +1 收起 理由
赵志勇 + 1

查看全部评分

6 个回复

倒序浏览
本帖最后由 王明明 于 2012-6-14 22:45 编辑

你这个好像刚有人问了 同样的问题
http://bbs.itheima.com/thread-17081-1-1.html
回复 使用道具 举报
我改了一下,是你在写代码时不小心写漏了,自己看下

import java.util.*;
class IteratorDemo {
public static void main(String[] args) {
   List al = new ArrayList();
  al.add("java01");
  al.add("java02");
  al.add("java03");
  al.add("java04");
   
  for (Iterator it = al.iterator(); it.hasNext();) {//--------------------------------你这里不小心包al(L的小写)写成a1(数字1)
   sop(it.next());
  }
}
public static void sop(Object obj) {
  System.out.println(obj);
}
}

评分

参与人数 1技术分 +1 收起 理由
赵志勇 + 1

查看全部评分

回复 使用道具 举报
这个必然是先前有一份编译好的class文件。。。你运行的是先前编译好的。。。
没有编译成功必然不会生成class文件。。哪能运行的起来啊。。。毕老师讲话。。吓也得把你吓死!!!
回复 使用道具 举报
解释见代码注释,你的应该是改过后就可以正常编译了。
你说的这个问题,估计是你里面本来就有个正常的IteratorDemo.class的文件,但是你的IteratorDemo.java文件有代码中的那问题。
所以就会出现编译没有过,但是用java执行IteratorDemo.class文件过了的现象。
  1. import java.util.*;
  2. class  IteratorDemo
  3. {
  4. public static void main(String[] args)
  5. {
  6.   ArrayList al = new ArrayList();
  7.   al.add("java01");
  8.   al.add("java02");
  9.   al.add("java03");
  10.   al.add("java04");
  11. /*
  12.   Iterator it = al.iterator();//获取迭代器,用于取出集合中的元素。
  13.   while (it.hasNext())//返回boolean型 判断集合中是否有元素。
  14.   {
  15.    sop(it.next());//取出集合中的元素。一个一个取。
  16.   }
  17. */
  18.   for (Iterator it = a1.iterator(); it.hasNext() ; )//这里应该al,但是你写的是a1所以编译报错。
  19.   {
  20.    sop(it.next());
  21.   }
  22.   
  23. }
  24. public static void sop(Object obj)
  25. {
  26.   System.out.println(obj);
  27. }
  28. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
赵志勇 + 1 赞一个!

查看全部评分

回复 使用道具 举报
你的al写成了a1
楼主说出错了你还能运行出结果来????

我在自己的机子上先运行了一遍错误的结果运行不出来
但是 当我把a1改过来之后运行正确 然后在故意该错了之后 也会出现楼主你这样的提示
我想是不是因为


注意:Demo.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。


上边这个原因啊??
回复 使用道具 举报
谢谢大家的帮助, 我看到错误的原因了。thank you
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马