gpt4 book ai didi

java - 使用 List 接口(interface)初始化 LinkedList 会在以后使用时强制转换 LinkedList

转载 作者:行者123 更新时间:2023-11-30 06:04:20 25 4
gpt4 key购买 nike

我有以下初始化 LinkedList 的代码:

List<Node> optimal = new LinkedList<>();

现在,当我想使用初始化的 LinkedList 时:

optimal.addFirst(new Node(i, p));

我在 IntelliJ 中收到错误“无法解析方法”。现在,如果我在调用 addFirst(); 时让 IntelliJ 自动完成我的代码,我会得到以下行:

((LinkedList<Node>) optimal).addFirst(new Node(i, p));

我必须将最佳列表专门转换为 LinkedList 吗?

稍后我还尝试了以下行,它运行良好,无需任何转换:

optimal.add(new Node(i, p));

据我所知,在使用接口(interface)而不是实现进行初始化时不需要任何转换,所以我在这里遗漏了一些东西吗?这可能是 addFirst() 方法特有的吗?

最佳答案

addFirstDeque 提供界面。将 optimal 定义为 List 并不能让您访问该方法。一种解决方案是将 optimal 定义为 Deque:

Deque<Node> optimal = new LinkedList<>();

关于java - 使用 List 接口(interface)初始化 LinkedList 会在以后使用时强制转换 LinkedList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49709177/

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