论坛首页 Java企业应用论坛

非泛型的list转换到泛型的list,有什么好的方法?

浏览 6513 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-28  
比如从ibates里面查询出来的List都不是泛型的List,我目前都是循环进行强制转型,请教各位有什么比较漂亮的做法?
   发表时间:2007-08-29  
再漂亮的做法也要一个一个来。
能工作就行了。
0 请登录后投票
   发表时间:2007-10-11  
没有人告诉你,不可以直接使用范型吧。直接用就可以了!只要你定义的时候使用范型定义就可以了!
汗!
0 请登录后投票
   发表时间:2007-10-11  
非泛型的List和泛型的List可以自动转化,不需要手工强制转换吧。
例如:使用Spring的HibernateTemplate得到的是非泛型的List,
可以自动转化成泛型的:
public List<Song> findAll() {
   return getHibernateTemplate().find("from Song");
}
Java的泛型为了和以前版本的兼容,会在运行的时候把泛型擦拭掉。
0 请登录后投票
   发表时间:2007-10-12  
fuliang 写道
非泛型的List和泛型的List可以自动转化,不需要手工强制转换吧。
例如:使用Spring的HibernateTemplate得到的是非泛型的List,
可以自动转化成泛型的:
public List<Song> findAll() {
   return getHibernateTemplate().find("from Song");
}
Java的泛型为了和以前版本的兼容,会在运行的时候把泛型擦拭掉。

测试了一下,确实是哦

import java.util.List;
import java.util.ArrayList;

class ToGenericList {

  private List getList() {
    List list = new ArrayList();
    list.add("1");
    list.add("2");

    return list;
  }

  public List<String> getGenericList() {
    return getList();
  }

  public static void main(String[] args) {
    ToGenericList l = new ToGenericList();
    List<String> list = l.getGenericList();
    for (String s : list) {
      System.out.println(s);
    }
  }
}


不过编译的时候会报一个警告:
引用
注意:ToGenericList.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics