分类: Java
2012-02-29 10:50:36
类 Class 已经泛型化了,但是很多人一开始都感觉其泛型化的方式很混乱。Class
在以前的 JDK 中,Class.newInstance() 方法的定义返回 Object,您很可能要将该返回类型强制转换为另一种类型:
class Class { Object newInstance(); } |
但是使用泛型,您定义 Class.newInstance() 方法具有一个更加特定的返回类型:
class Class T newInstance(); } |
如何创建一个 Class
让 Foo.class 是 Class
考虑一个方法,它从数据库检索一组对象,并返回 JavaBeans 对象的一个集合。您通过反射来实例化和初始化创建的对象,但是这并不意味着类型安全必须完全被抛至脑后。考虑下面这个方法:
public static // Use Selector to select rows List for (/* iterate over results */) { T row = c.newInstance(); // use reflection to set fields from result list.add(row); } return list; } |
可以像下面这样简单地调用该方法:
List |
编译器将会根据 FooRecord.class 是 Class