Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
特定Java通用数组创建_Java - Fatal编程技术网

特定Java通用数组创建

特定Java通用数组创建,java,Java,可能重复: 如何用Java初始化这个数组 Vector<Integer>[] c; Vector[]c; 我已经试过了: Vector<Vector<Integer>[]> a = new Vector<Vector<Integer>[]>(); Vector<Integer>[] c = (Vector<Integer>[])a.toArray(); 向量a=新向量(); 向量[]c=(向量[])a.t

可能重复:

如何用Java初始化这个数组

Vector<Integer>[] c;
Vector[]c;
我已经试过了:

Vector<Vector<Integer>[]> a = new Vector<Vector<Integer>[]>();
Vector<Integer>[] c = (Vector<Integer>[])a.toArray();
向量a=新向量();
向量[]c=(向量[])a.toArray();
出现以下错误:

线程“main”java.lang.ClassCastException中的异常: [Ljava.lang.Object;无法强制转换为[Ljava.util.Vector;at app.Program.main(Program.java:38)位于 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于 invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:601) com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

编辑:

我的问题是,我是一个类的客户端,该类接收一个泛型数组“T[]args”参数,在我的例子中,T是一个泛型类型,比如向量,谢谢


我是Java新手。

我认为您无法创建泛型数组。 看看这个


这是因为类型信息在运行时不可用。

如果可以避免的话,我不会使用Vector。它在Java 1.2(1998)中被ArrayList取代


这是一个向量数组:

    Vector<Integer>[] c = new Vector[2];
    c[0] = new Vector<Integer>();
    c[0] = new Vector<Object>(); // <- compiletime error
    c[0].add(new Integer(0));

您可以删除泛型声明

Vector[] c = new Vector[10];
或者用另一个向量或列表类型替换数组

List<Vector<Integer>> list = new ArrayList<Vector<Integer>>();
List List=new ArrayList();

你想做什么?向量和数组在概念上是相似的,但它们并不相同。你真的想创建一个包含整数数组的向量吗?如果你使用集合,为什么要使用数组?从你的要求来看,似乎你想要一个向量数组。向量列表不是更有用吗是否有意义?很难说清楚为什么需要数组。@Aaron Kurtzhals不,我正在尝试创建一个泛型类型的数组。
    Vector[] b = c;                    // <- warning
    Vector<Double>[] a = b;            // <- warning
    a[1] = new Vector<Double>();       // <- the array itself allows that
    a[1].add(new Double(0));

    for (Vector<Integer> vector : c) {
        Integer value = vector.get(0); // <- BOOM! (on second iteration)
    }
Vector[] c = new Vector[10];
List<Vector<Integer>> list = new ArrayList<Vector<Integer>>();