带/ Generics的数组

时间:2014-04-07 03:02:47

标签: java android generics

我看过What's the reason I can't create generic array types in Java?。当我尝试这段代码时,我来到了它:

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

我决定&#34;狂野&#34;并尝试别的东西

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

现在,我不明白为什么第一个选项不好/不支持,第二个选项编译。

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

我更喜欢遵循智能编程原则,但不了解这种特殊情况的区别。

1 个答案:

答案 0 :(得分:1)

指出你已经知道的东西,第二个编译。 ArrayList不是一个数组,所以你的程序显然不会遇到泛型数组问题。

你可能想知道ArrayList如何做到这一点。在我见过的ArrayList的实现中,它在内部使用Object数组 - 不是通用的。这堂课只是做了很多演员。