public List getSomeTypeList(Object obj)

  String type=obj.getClass().toString();
  List<type> list=new ArrayList<type>();
  return list;
}上面的这段程序当然是错的,意图是想根据一个对象的类型,来返回一个和这个对象类型一样的泛型List,  我想知道, type能不能作为变量来限定这个泛型呢? java1.5中有没有"泛型"类型的变量呢?

解决方案 »

  1.   

    1:泛型是类型安全的,因为他在编译期间做了类型检查.
     而"String type=obj.getClass().toString();"是RTTI(运行期信息),
    所以type不能作为变量来限定这个泛型呢.2:>>java1.5中有没有"泛型"类型的变量呢?
       你想要的是? 
    static void testGp(List<String> l) {       for(int i=0;i<l.size();i++)
           System.out.println(l.get(i)); } 
    3:lz想表达类似c++中模板class TestGen {  <T extends Object> public static List<T> make(T first) { return new List<T>(first);  } } 
      

  2.   

    二楼的emin_lee(emin) 说的很对 你的想法确实违背了泛型的初衷 如果楼主感觉麻烦那可以不用泛型嘛 也不是必须要用