我有一个类
我需要一个特定的O[](而不是
所以我想要类似于以下的东西。
我在网上找到了一些方法,但它们对我的情况不起作用:
FirstClass<O>
和一个类SecondClass<O>
,我想在从FirstClass<O>
调用的例程中,在SecondClass<O>
中创建一个O[],其中O是一个泛型类参数。我无法找到如何做到这一点。我需要一个特定的O[](而不是
ArrayList<O>
或类似的东西),因为我需要在循环体内经常从中获取元素,并且它对我的算法的执行时间很重要。所以我想要类似于以下的东西。
public class FirstClass<O> {
void someRoutine(n and other params) {
//Do some stuff
SecondClass<O> = new SecondClass(n, possibly_other_params);
//Do some stuff
}
}
并且
public class SecondClass<O> {
O[] myArray;
SecondClass<O>(int n, possibly_other_params) {
//Here the constructor that creates an O[n]
}
}
我在网上找到了一些方法,但它们对我的情况不起作用:
- 使用
O[] array = (O[]) new Object[n];
,但编译器无法通过。 - 使用
Object[] array = new Object[n];
,并且每次从数组中请求数据时进行(O)类型转换,但这太慢了。 - 使用
Array.newInstance(Class<O> type, int n);
,其中O o;
和type=o.class
,但是它抱怨type
现在是类型为Class<CAP#1>
而不是Class<O>
的类型,无论CAP#1是什么意思...
ArrayList
,唉。 - Paul Belloraa[i]=a[j]
以获得某些排列比一直执行list.set(i,list.get(j))
要便宜得多。使用固定的数组类型确实可以使其更快,但是我需要为O可能的25种类型之一复制粘贴代码,这并不是真正的好风格。:/ 好吧,如果不可能,那当然就不可能了。无论如何,感谢您的建议。 - user1111929