我有一堂课如下:
public class MyConverter {
public <T> T convert (Object o, String typeidentifier, T dummy)
{
... do some conversions such as a java array to an ArrayList or vice versa
... based on a typeidentifier syntax similar to Class.getName() but which
... embeds information about generic subtypes
}
}
并希望能够做这样的一般事情:
int[] ar = {...};
ArrayList<Integer> dummy = null;
Integer elem = MyConverter.convert(ar, "java.util.ArrayList<Integer>", dummy)
.get(15);
也就是说,T
in convert 本身可能是一个通用实例,我发现要实现这个目标,我必须传递一个完全类型化的虚拟对象,因为如果我使用ArrayList.class
它,它不会给 java 编译器足够的信息而不是.ArrayList<Integer>
Class<T> dummycls
T dummy
我错过了什么吗?有没有办法在不需要假人的情况下编写和调用转换?