在非泛型数组上获取通用数组创建错误,我认为?
所以,这段代码很好,很直接。
public class test {
private subTest[] subTests;
private class subTest {
}
public test(int size) {
subTests = new subTest[size];
}
}
但我实际上要做的事情更像是这样:
public class test<T> {
private subTest[] subTests;
private T[] arrayOfGenerics;
private class subTest {
}
public test(int size, int size2) {
arrayOfGenerics = (T[]) new Object[size]; //This line works fine
subTests = new subTest[size2]; //This line is the one giving me a 'Generic array creation' error
}
}
答案 0 :(得分:3)
subTest
是test
的内部类,因此test
的类型参数在subTest
内可见。因此,您正在尝试创建泛型类型
test<T>.subTest[]
您可以通过使类subTest
成为静态嵌套类来解决此问题:
private static class subTest
如果这样做,数组的类型只是
test.subTest[]