我试图创建如下所示的链表
List<Integer> list = new LinkedList<>();
int i = list.getLast();
但是当我使用LinkedList类中的getLast()方法时,它报告“找不到符号“方法getLast()””。
似乎,由于getLast()仅存在于LinkedList类中,并且我将list声明为List,所以将其转换为更通用的形式并失去了一些功能。
但是我很好奇Java如何找到方法名称?由于我将其实例化为LinkedList,因此无法在实例化的类中找到此方法? 有什么我可以阅读的文件
答案 0 :(得分:1)
问题是List
接口没有公开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<>();