当前位置: 代码迷 >> J2SE >> 求解下边有关Java的代码,尤其是for循环中的第一句
  详细解决方案

求解下边有关Java的代码,尤其是for循环中的第一句

热度:30   发布时间:2016-04-23 20:38:19.0
求解下面有关Java的代码,尤其是for循环中的第一句
public static void main(String[] args) {
 NewTitle car=new NewTitle(1,"汽车","管理员");
 NewTitle test=new NewTitle(2,"高考","管理员");
 
 List newsTitleList=new ArrayList();
 
 newsTitleList.add(car);
 newsTitleList.add(test);
 
 System.out.println("新闻标题总数为:"+newsTitleList.size()
 +"条");
 
  for(int i=0;i<newsTitleList.size();i++){
  NewTitle title=(NewTitle) newsTitleList.get(i);//第1句
  System.out.println((i+1)+";"+title.getNewTitleName()); //第二句
  }
------解决方案--------------------
就是创建2个NewTitle对象,然后放到一个List中,再从list中循环取出其中的对象,并显示对象的信息。
第一句就是从list中取出一条记录,转换为NewTitle类型
第二句就是打印取出对象的name信息,i+1就是为了显示个序号
------解决方案--------------------
NewTitle title=(NewTitle) newsTitleList.get(i);//第1句
newsTitleList是个ArrayList,它可以通过.get(int index)得到你想要的对象,类比数组的Array[i],然后由于没有规律传入这个list的类型所以需要强转,不想强转写成List<NewTitle> newsTitleList = new ArrayList<NewTitle>();
------解决方案--------------------
从List集合中调用get(i)方法得到的是Object对象,是必须强制转换成你自己的类型
------解决方案--------------------
List是用来容纳Object的,add方法隐含了将NewTitle转型为了Object的操作,所以取出时必须强制转型为原类型。其实JDK1.5以上支持泛型,就可以省略此过程。
------解决方案--------------------
如果你不想强制转型。那使用泛型
List<NewTitle> newsTitleList=new ArrayList<NewTitle>();