Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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_Arrays_Generics - Fatal编程技术网

在java中强制转换泛型数组

在java中强制转换泛型数组,java,arrays,generics,Java,Arrays,Generics,该实现针对java中的链表: public AnyType[] toArr() { AnyType[] arr = (AnyType[]) new Object[size]; int i = 0; Node<AnyType> current = head.next; while (cur != head){ arr[i] = current.data;// fill the array

该实现针对java中的链表:

public AnyType[] toArr() {

        AnyType[] arr = (AnyType[]) new Object[size];

        int i = 0;
        Node<AnyType> current = head.next;
        while (cur != head){

            arr[i] = current.data;// fill the array
            i++;
            current = current.next;

        }      

    return arr;

}

public static void main(String[] args) {
    System.out.println(ll.toArr().toString());
} 
谢谢。

对象[]不是AnyType[]的子类型,因此强制转换是非法的

要创建特定类型的数组,可以使用reflective java.lang.reflect.array.newInstance工厂方法:

因此,如果您有AnyType类型的类实例:

但由于无法将其强制转换为对象[],因此还需要使用反射来修改它:

Array.set(myPrimitiveArray, 0, myPrimitiveWrapperObject);
对象[]不是AnyType[]的子类型,因此强制转换是非法的

要创建特定类型的数组,可以使用reflective java.lang.reflect.array.newInstance工厂方法:

因此,如果您有AnyType类型的类实例:

但由于无法将其强制转换为对象[],因此还需要使用反射来修改它:

Array.set(myPrimitiveArray, 0, myPrimitiveWrapperObject);
Object myPrimitiveArray = Array.newInstance(Integer.TYPE, length);
Array.set(myPrimitiveArray, 0, myPrimitiveWrapperObject);