难题,关于1.5中的泛型的设想
public List getSomeTypeList(Object obj)
{
String type=obj.getClass().toString();
List <type> list=new ArrayList <type> ();
return list;
}
上面的这段程序当然是错的,意图是想根据一个对象的类型,来返回一个和这个对象类型一样的泛型List, 我想知道, type能不能作为变量来限定这个泛型呢? java1.5中有没有 "泛型 "类型的变量呢?
------解决方案--------------------之所以引入泛型
主要就是为了把运行期可能出现的类型转换异常
提到编译期来发现和抛出
这样 就减少了运行时出错的可能性
如果按照楼主的想法
引入变量来标识泛型 而这个变量也只有在运行起才能够赋值
那么 就起不到编译期查错的作用了
就违背了引入泛型的初衷了
------解决方案--------------------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);
}
}
------解决方案--------------------二楼的emin_lee(emin) 说的很对 你的想法确实违背了泛型的初衷 如果楼主感觉麻烦那可以不用泛型嘛 也不是必须要用
------解决方案--------------------同意楼上,泛型的引入是为了避免出错,使用变量,就达不到这种效果了。