gpt4 book ai didi

java - 无法从 List 转换为 List

转载 作者:行者123 更新时间:2023-12-02 01:49:42 25 4
gpt4 key购买 nike

大家。我正在练习 dom4j 和 Xpath,但遇到了一个问题。

我正在尝试:

List<Element> conList = (List<Element>)doc.selectNodes("//contact");

但出现错误:

Cannot cast from List<Node> to List<Element>

该代码在教学视频中似乎运行良好,但在我的电脑上不起作用。

这属于非法操作吗?我可以通过其他方式解决问题吗?谢谢。

最佳答案

您不能简单地以这种方式使用具体参数来转换基于泛型的对象。

实现目标的一个很好的 java8 方法是:

List<Element> conList = doc.selectNodes("//contact")
.stream()
.map(node->(Element)node)
.collect(Collectors.toList());

请注意,对于您不知道列表元素是否实际上是目标类或接口(interface)的实例的一般情况,您可能需要通过过滤来断言

List<Element> conList = doc.selectNodes("//contact")
.stream()
.filter(node->node instanceof Element)
.map(node->(Element)node)
.collect(Collectors.toList());

关于java - 无法从 List<Node> 转换为 List<Element>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53166554/

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