gpt4 book ai didi

java - 为什么允许 heap.toArray(new int[0][0]) ?

转载 作者:行者123 更新时间:2023-11-29 08:24:07 24 4
gpt4 key购买 nike

我看到了这样一段代码:

public int[][] test() {
Queue<Integer> queue = new PriorityQueue<>();
//Do Something
return queue.toArray(new int[0][0])
}

我很好奇最后一行,为什么这里允许int[0][0]queue.toArray 方法的参数不应该是 Array 恢复到的内存吗?

最佳答案

toArray 的文档在这儿: https://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html#toArray(T[])

toArray的签名是<T> T[] toArray(T[] a) .所以编译器推断出 T = int[] .请注意,该集合的类型参数是 E , 不是 T .

无论这段代码打算做什么,很可能会失败,因为文档说:

Throws: ArrayStoreException - if the runtime type of the specified array is not a supertype of the runtime type of every element in this collection

int[]不是 Integer 的父类(super class)型.

关于java - 为什么允许 heap.toArray(new int[0][0]) ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54846426/

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