gpt4 book ai didi

casting - 声明了一个列表,实现为 LinkedList,不能使用 getLast() 方法

转载 作者:行者123 更新时间:2023-12-05 05:15:13 30 4
gpt4 key购买 nike

我尝试创建如下所示的链表

List<Integer> list = new LinkedList<>();
int i = list.getLast();

但是当我使用 LinkedList 类中的 getLast() 方法时,它报告“找不到符号“方法 getLast()””。

看来,由于 getLast() 仅存在于 LinkedList 类中,而我将 list 声明为 List,因此我将其转换为更通用的形式并丢失了一些功能。

但我很好奇 Java 是如何找到方法名的?由于我将它实例化为LinkedList,它不能在实例化的类中找到这个方法吗?有没有我可以阅读的文件

最佳答案

问题是 List 接口(interface)没有公开 getLast() 方法,这是实现 LinkedList 所特有的。您在这里有多种选择。如果你想像这样声明你的 List,那么你可以在调用 getLast() 之前转换链表变量:

List<Integer> list = new LinkedList<>();
list.add(1);
int i = ((LinkedList<Integer>)list).getLast(); // but make sure it's a linked list

另一种选择是将您的列表声明为链表:

LinkedList<Integer> list = new LinkedList<>();

关于casting - 声明了一个列表,实现为 LinkedList,不能使用 getLast() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51853425/

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