如何将泛型类传递给Java中的方法?
|
假设我们有一个函数可以创建给定特定类的对象:
public static <T> T createObject(Class<T> generic) {
try {
return generic.newInstance();
} catch (Exception ex) {
return null;
}
}
我们可以轻松地使用该函数来创建非泛型类型的实例。
public static void main(String[] args) {
Foo x = createObject(Foo.class);
}
使用泛型类型是否可以做同样的事情?
public static void main(String[] args) {
ArrayList<Foo> x = createObject(ArrayList<Foo>.class); // compiler error
}
没有找到相关结果
已邀请:
3 个回复
体悉
是
。编译器只是为您插入强制类型转换。 您可以使用以下方法对此进行测试:
芜任亮蜡
这是我的用法:
荤碗
唯一的麻烦是,在编译时它不能保证
不会向
中添加不是adding11ѭ类型的对象。在您的情况下,这可能是安全的,因此您仍然可以使用泛型而不必使用
。