gpt4 book ai didi

java - 无法创建节点数组

转载 作者:行者123 更新时间:2023-11-30 05:52:19 25 4
gpt4 key购买 nike

尝试创建节点数组时出现以下错误:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LSkipList$Node;

这是我的代码:

    public class Node {
Key key;
Value val;
Node[] next;

//constructor
public Node(Key k, Value v) {
key = k;
val = v;
next = (Node[])new Object[MAX_LEVEL];

}
}

最佳答案

这个:

new Object[MAX_LEVEL]

表示“类型为 Object[] 且大小为 MAX_LEVEL 的新数组,其中每个元素均为 null”。

<小时/>

这个:

(Node[])new Object[MAX_LEVEL]

意思相同,加上“但检查它是否具有类型Node[];如果没有,则引发ClassCastException”。但这是多余的,因为您刚刚创建了 Object[] 类型的数组,因此您知道它没有 Node[] 类型。所以它总是会引发ClassCastException

<小时/>

相反,你需要这样写:

new Node[MAX_LEVEL]

这意味着“一个类型为Node[]、大小为MAX_LEVEL的新数组,其中每个元素都是null”。

关于java - 无法创建节点数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53678542/

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