gpt4 book ai didi

Java 泛型 : Array Casting

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:39 25 4
gpt4 key购买 nike

我想转换一个对象数组,其中涉及严格内部使用的通用类型。


对象:

private class Node<T>
{
T element;
int prior;

public Node(T element, int prior)
{
this.element=element;
this.prior=prior;
}

}

数组:

private Node<E>[] elements;

Actor :

public PriorityQueue()
{
elements = (Node<E>[])new Object[capacity]; // ClassCastException
}

为什么我得到 ClassCastException?

最佳答案

此处公认的解决方案应该可以解决问题:

casting Object array to Integer array error

您不能将 Object[] 直接转换为 Node[],但可以使用 Arrays.copyOf() 创建正确类型的副本。唯一的缺点是这涉及复制,但它是 Java:如果你不希望它变慢,你就不会对自己这样做 ;)

关于Java 泛型 : Array Casting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35826524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com