gpt4 book ai didi

java - 带泛型的数组

转载 作者:行者123 更新时间:2023-12-01 13:10:31 27 4
gpt4 key购买 nike

我已阅读What's the reason I can't create generic array types in Java? 。当我尝试这段代码时我发现了它:

HashMap<String, String>[] ret = new HashMap<String, String>[arraySize];

我决定“疯狂”并尝试其他东西

ArrayList<HashMap<String, String>> ret = new ArrayList<HashMap<String, String>>();

现在,我不明白的是为什么第一个选项不好/不受支持,而第二个选项可以编译。

我错过了什么?在第一种方法中,我收到错误并且无法编译,而第二种方法则没有编译器问题。

我更喜欢遵循智能编程原则,但不理解这种特殊情况下的差异。

最佳答案

为了指出您已经知道的内容,第二个编译。 ArrayList 不是数组,因此您的程序显然不会遇到通用数组问题。

您可能想知道 ArrayList 是如何做到这一点的。在我见过的 ArrayList 的实现中,它内部使用了一个 Object 数组——而不是通用的。这个类(class)只是进行了大量的选角工作。

关于java - 带泛型的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22902935/

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