日期:2014-05-20  浏览次数:20639 次

有一段程序不是明白,请各位指教,分不够就加!!!

List results = login.executeQuery("select * from admin");  
Iterator it = results.iterator();
while(it.hasNext()) 

  Admin admin = (Admin)it.next(); 
  out.print(admin.getUserName()); 
  out.print(admin.getPassword()+"<br>"); 
}

  这段程序的大体意思我懂,但是具体的内容我就不是很明白了,特别是“Admin admin = (Admin)it.next(); ”谁能给逐行地解释一下具体的意思,呵呵,小弟刚刚开始学,有太多的东西不懂,希望大家不要笑话,不吝赐教,如果分不够我立刻就加,谢谢!

------解决方案--------------------
你也可以用泛型 这样写
Java code
 
//加上泛型标签
List <Admin> results = login.executeQuery("select * from admin"); 
Iterator <Admin> it = results.iterator();
while(it.hasNext()) 

Admin admin = it.next();  //这样 这里就不用强制转换了
out.print(admin.getUserName()); 
out.print(admin.getPassword()+" <br>"); 
}


------解决方案--------------------

List results = login.executeQuery("select * from admin");//sql查询的结果放在list里
Iterator it = results.iterator(); //取得list对象的Interator迭代器
while(it.hasNext()) //是否还能迭代到下1位置,是否==results.size()
{
Admin admin = (Admin)it.next(); //返回next最后访问到的results元素,由于List中对象的类型被忽略
//所以实际List里保存的对象类型为Object,要将其还原为实际Admin类型
//需要使用不安全的向下转型
out.print(admin.getUserName());
out.print(admin.getPassword()+" <br>");


可能楼主的jdk还没有泛型。不然就用三楼的,很直观。
------解决方案--------------------
//查询得到结果放list里面
List results = login.executeQuery("select * from admin"); 
//建立游标用于遍历List结果集
Iterator it = results.iterator(); 
while(it.hasNext()) //如果有下一个,就是List还没遍历完
{
//获得List中下一个值,并通过强制转化成Admin
Admin admin = (Admin)it.next();
//输出。。。
out.print(admin.getUserName());
//输出。。。
out.print(admin.getPassword()+" <br>");