通用数组 - 无法编译

时间:2015-10-12 16:30:55

标签: java arrays

我试图获取一系列的哈希图,这就是我所拥有的:

document.querySelectorAll("div#tabs" + tabId + "> div.page")[0].style.display = 'none'; // First element

我知道你需要在拥有像这样的数组时进行转换但仍然无法编译。我无法理解问题所在。请帮忙。

感谢。

2 个答案:

答案 0 :(得分:2)

您收到ClassCastException,因为Object[]不是HashMap[]

可以通过写:

来解决它
@SuppressWarnings("unchecked")
public void openFile (int num_of_nodes, String path) {
    In in = new In(path);
    graph = (HashMap<Integer, Integer> []) new HashMap[num_of_nodes];

我不推荐这个(以粗体书写,因为我在答案中写@SuppressWarnings("unchecked")时通常会被投票。)

更好的解决方案是使用List<Map<Integer, Integer>>。泛型和数组不能很好地结合在一起。

答案 1 :(得分:0)

尝试像这样声明graphMap<Integer,Integer> [] graph = new HashMap<Integer,Integer>(); 就像在说ArrayList

时声明List l = new ArrayList<String>();对象一样