锁定老帖子 主题:泛型简单示例
精华帖 (0) :: 良好帖 (0) :: 新手帖 (9) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-28
public class ObjectCreator { public static <T> T creat(Class<T> cls) { try { return cls.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return null; } public static void main(String[] args) { Date d = ObjectCreator.creat(Date.class); System.out.println(d); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-01-28
你把泛型和反射放在一起做例子,新人看到会无语的。
你能分得清什么是泛型?什么是反射吗?他们俩有什么区别和联系吗? |
|
返回顶楼 | |
发表时间:2011-01-28
看了代码第一感觉....
这是个反射例子.... |
|
返回顶楼 | |
发表时间:2011-01-28
最后修改:2011-01-28
congdepeng 写道 你把泛型和反射放在一起做例子,新人看到会无语的。
你能分得清什么是泛型?什么是反射吗?他们俩有什么区别和联系吗? LZ这例子确实有点呢个, 讲泛型 如果跟 反射 要沾边,就得 讲到 Erasure 上去 |
|
返回顶楼 | |
发表时间:2011-01-28
但是楼主大大写的确实是泛型的例子呀,都有<T>了
楼主大大是想说XXX.class形式的类字面量的具体类型是Class<T>吧。String.class的类型是Class<String>,Object.class的类型是Class<Object>。所以这种字面量当参数传给例子里的方法,返回的时候就不用手动转型 public class ObjectCreator { public static <T> T create(Class<T> cls) { try { return cls.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return null; } public static void main(String[] args) { Class<?> clz = Class.forName("java.util.Date"); Date d = (Date) ObjectCreator.create(clz); // 要手动转型 System.out.println(d); } } |
|
返回顶楼 | |
发表时间:2011-01-28
楼主想说的是利用范型方法确定函数返回值的类型的例子。
但是引入了反射的操作,反而会分散注意力。 |
|
返回顶楼 | |
发表时间:2011-01-29
泛型的功用在那裏呀?
|
|
返回顶楼 | |
发表时间:2011-01-29
Java是强类型检查的语言,但是,实际使用中,类型有可能是动态决定的,
比如容器类。 范型的引入更重要是让编译期类型检查能涵盖这方面。 |
|
返回顶楼 | |
发表时间:2011-01-29
对java的泛型方法很无语,非得传入class对象吗?
|
|
返回顶楼 | |
发表时间:2011-01-29
antipro 写道 对java的泛型方法很无语,非得传入class对象吗?
第一个被误导的初哥就诞生了。 |
|
返回顶楼 | |