Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 名称列表<;对象>;抛出类强制转换异常_Java_Collections - Fatal编程技术网

Java 名称列表<;对象>;抛出类强制转换异常

Java 名称列表<;对象>;抛出类强制转换异常,java,collections,Java,Collections,我想形成一个NamedList对象,如下所示: response={numFound=57279026,start=0,docs=[SolrDocument{timestamp_update=Thu Jan 01 01:00:00 CET 1970}]}} 当我这样做的时候,当我的代码试图访问结果时,我得到了一个抛出的异常:SolrDocumentList results=response.getResults() 我应该如何创建NamedList,以便它不会引发异常 以下是我的做法: Nam

我想形成一个NamedList对象,如下所示:

response={numFound=57279026,start=0,docs=[SolrDocument{timestamp_update=Thu Jan 01 01:00:00 CET 1970}]}}
当我这样做的时候,当我的代码试图访问结果时,我得到了一个抛出的异常:
SolrDocumentList results=response.getResults()

我应该如何创建NamedList,以便它不会引发异常

以下是我的做法:

NamedList nl=new SimpleOrderedMap();
私有静态映射solrDocumentMap=newhashmap();
put(“timestamp\u update”,timestamp\u update);
solrDocument=新的solrDocument(solrDocumentMap);
solrDocumentList.add(solrDocument);
nl.添加(“numFound”、“57279026”);
nl.添加(“开始”、“0”);
nl.添加(“文档”,解决方案文档列表);
NamedList nl1=新的NamedList(Collections.singletonMap(“response”,nl));
response.setResponse(nl1);
这里是QueryResponse的内置类,它将对SolarDocument进行响应

public void setResponse(NamedList res){
super.setResponse(res);
对于(int i=0;i
我终于找到了解决方案,希望这对大家都有帮助。我从Solr得到了XML格式的响应,读取文件并用XMLResponseParser解析它。不知何故,JsonParser不适用于Solar,如果您使用java反序列化,Solr中存在一个不兼容的bug

这也适用于查询响应类的内部类型转换


受保护的QueryResponse getResponse(字符串文件名)引发IOException{
Path Path=Path.get(resDir+“/”+文件名);
InputStream主体=新文件InputStream(path.toFile());
NamedList结果=processResponse(正文,null);
QueryResponse response=新的QueryResponse();
response.setResponse(结果);
返回响应;
}
私有名称列表processResponse(InputStream主体,对象o){
XMLResponseParser=新的XMLResponseParser();
NamedList result=parser.processResponse(主体,“UTF-8”);
返回结果;
}
**java.lang.ClassCastException: org.apache.solr.common.util.SimpleOrderedMap cannot be cast to org.apache.solr.common.SolrDocumentList**