gpt4 book ai didi

java - LinkedHashMap 类型转换

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

我有以下代码

    // Gets title, headers and data
String type = (String) responseMap.get("type");
String language = (String) responseMap.get("language");
String template = (String) responseMap.get("template");
String title = (String) responseMap.get("title");
List<Map> header = (List<Map>) responseMap.get("headers");
Object[] rows = ((List<List>) responseMap.get("data")).toArray();

List list = new ArrayList();
Bean line = null;
LinkedHashMap<String, Object> hmap = null;

int j, i;

for (j = 0; j < rows.length; j++) {
hmap = (LinkedHashMap<String, Object>) rows[j];
line = new Bean();

for (i = 1; i < headers.length; i++) {
line.choosefield(i, headers, hmap);
}
list.add(line);
}

在 hmap = (LinkedHashMap) rows[j]; eclipse 线说

 java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.LinkedHashMap

我不明白这个错误,因为我之前在另一个类中使用过这段代码(带有警告但有效)。

public String generateReport(String[] headers, Object[] data,
String language, String template, String title, String type)
throws JRException, SQLException, IOException {

int j, i;

for (j = 0; j < data.length; j++) {
hmap = (LinkedHashMap<String, Object>) data[j];
line = new Bean();

for (i = 1; i < headers.length; i++) {
line.choosefield(i, headers, hmap);
}
list.add(line);
}

为什么我现在无法转换?使用Windows和JDK1.6

最佳答案

在第二种情况下,hmap = (LinkedHashMap<String, Object>) data[j]; ,它起作用是因为 data[j]包含LinkedHashMap<String, Object> 。为了验证您可以输入除 LinkedHashMap<String, Object> 以外的其他内容在第二个代码片段的 Object[] 数据中。您可能会得到相同的 java.lang.ClassCastException

在第一个代码片段中,您可以执行 instanceOf在进行盲铸之前进行检查。这将帮助您避免这种情况java.lang.ClassCastException .

关于java - LinkedHashMap 类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31590121/

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