【发布时间】:2015-01-04 09:26:43
【问题描述】:
我用泛型创建了这个类 ArrayBuilder 来做一些基本的操作来管理一个 T 对象的数组。
public class ArrayBuilder<T> {
@SuppressWarnings("unchecked")
public ArrayBuilder(Class<T> ct, int dim){
container = (T []) Array.newInstance(ct, dim);
}
public T getElement(int index){
return container[index];
}
public void setElement(int index, T value){
container[index] = value;
}
public T[] getContainer(){
return container;
}
T[] container;
public static void main(String[] args) throws ClassNotFoundException {
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
ps.print("che array desidera? ");
String nameClass = "discover.";
nameClass = nameClass + sc.nextLine();
Class<?> toManipulate = Class.forName(nameClass);
//Type type = toManipulate.getGenericSuperclass();
ArrayBuilder<toManipulate> ab = new ArrayBuilder<toManipulate>(toManipulate, 10);
}
}
在主程序中,程序要求用户插入他喜欢的类的名称,所以我想使用 ArrayBuilder 构造函数来创建这种数组,但编译器不接受尖括号中的变量 toManipulate。也许我必须从 toManipulate 实例中提取泛型类型?
【问题讨论】:
标签: java arrays generics reflection