list接口的likedlist容器类找不到方法 javalinkedlist链表 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 getFirst removeLast是Linkedlist的方法 而不是List的方法 所以会找不到ps 都用上Linkedlist了 就用个IDE吧 别用记事本了 你现在的声明类型是List而不是LinkedList,即使它真实的类型是LinkedList,你仍然没法用LInkedList里面才有的方法。好比,我现在说:“明天会有个人过来”,即使来的人确实是个“男的Java程序员”,你在仅仅知道“人”的情况下,没法做出以下任何一个结论:他可以去男厕所可以让他写Java程序...只有在我明确告诉你“明天会有个男的Java程序员过来”,你才能得出上述的结论。同样,你也只有明确告诉编译器,你的对象的类型是LinkedList,编译器才能让你用LinkedList的方法。如果你仅仅告诉编译器,它是个List(哪怕实际类型确实是LinkedList),编译器也不会让你用仅在LinkedList里面定义的方法 List L = new LinkedList();改为LinkedList L = new LinkedList(); 如果没有其它方面的约束的话。直接改为LinkedList L = new LinkedList();就好了。 Java的接口不是支持动态绑定吗?LinkedList集成List吗? Java的动态绑定不就是这个么,难道不行 Java的接口不是支持动态绑定吗?LinkedList集成List吗?你还是没看懂我举的例子。 Java的接口不是支持动态绑定的吗?父类引用指向子类,运行时更具实际的对象调用对象自己的方法 你现在还没到运行时,现在是语法错误。List接口没有提供first, last系列方法。所以,你声明的类型(也就是等号左边的类型)不能是List,而只能是LinkedList反过来,你提到的运行时:假设:public class MyLinkedList extends LinkedList { public Object removeLast() { System.out.println("不可以删除最后一个!!!"); return null; }}这个时候,随便你声明具体的类,还是LinkedListLinkedList list = new MyLinkedList();list.add("1234");list.add("5678");list.removeLast();编译都能通过,且在运行时,会执行你所谓的“动态绑定”。再把我的例子复述一遍:今天(编译期,对应javac命令执行的时间),当我(代码)对你(编译器对应javac命令)说:“明天,有个人(List)要来”,你(编译器)只知道他是个人(List)——插一句,编译器还没智能到能够分析代码,这个即没必要,也不可靠,所以,即使就在等号后面马上出现了真实类型。如果这个时候(还是编译期),我(代码)对你(编译器)说:“你带这个人(List)去男厕所(执行removeLast方法)”,你(编译器)会傻傻地拒绝(编译错误),说:“我不知道他是不是个男人(LinkedList),不能让这个人(List)去做只有男人(LinkedList)才能做的事情”。这个时候(编译期),我(代码)只能改口(改掉你错误代码)说:“明天,有个男人(声明类型,也就是等号左边那个类型)要来,你带他去男厕所(执行removeLast)”。这个时候,你(编译器)会很高兴的确认我给你的任务(编译通过)到了第二天(运行期,对应java命令执行的时间),那个人来了,检查无误,果然是个男人,而且还是个帅哥(男人的子类,好比上面MyLinkedList)。反正不管是帅哥也好,糟老头(其他LinkedList子类)也罢,反正一定是个男人,一定能去男厕所(执行在在LinkedList中定义过的removeLast方法)。 然后,漏了楼主的“动态绑定”,也就是多态:进了男厕所,不同的男人(不同子类)有不同的表现,有的唱歌,有的有前列腺,因而慢腾腾,还有小孩子的直接拉在了裤子上(抛exception)。具体怎么样的表现,现在(编译期)你没法知道,只有到明天,进了男厕所(运行期)才知道 求解。。IO系统不解之3 关于异常与多态性 这样的异常。。。 高手求救啦!!一个向量问题??? 请问有没有工具可以把C#的代码转换成java的代码? URL读取信息的问题 在次求助:被joc.jar混淆过的文件如何反编译为JAVA文件.有什么好的软件和方法吗? 请帮忙。 jsp中有关session的问题 。也许你没见过! linkguic(rake)分数等着你了啊,快进来告诉我jade怎么用啊 java添加(修改)一段查询数据库并返回的代码 SimpleFileVisitor遍历文件遇到的一个问题
ps 都用上Linkedlist了 就用个IDE吧 别用记事本了
他可以去男厕所
可以让他写Java程序
...只有在我明确告诉你“明天会有个男的Java程序员过来”,你才能得出上述的结论。
同样,你也只有明确告诉编译器,你的对象的类型是LinkedList,编译器才能让你用LinkedList的方法。如果你仅仅告诉编译器,它是个List(哪怕实际类型确实是LinkedList),编译器也不会让你用仅在LinkedList里面定义的方法
改为
LinkedList L = new LinkedList();
你还是没看懂我举的例子。
public class MyLinkedList extends LinkedList {
public Object removeLast() {
System.out.println("不可以删除最后一个!!!");
return null;
}
}
这个时候,随便你声明具体的类,还是LinkedListLinkedList list = new MyLinkedList();
list.add("1234");
list.add("5678");
list.removeLast();编译都能通过,且在运行时,会执行你所谓的“动态绑定”。再把我的例子复述一遍:
今天(编译期,对应javac命令执行的时间),当我(代码)对你(编译器对应javac命令)说:“明天,有个人(List)要来”,你(编译器)只知道他是个人(List)——插一句,编译器还没智能到能够分析代码,这个即没必要,也不可靠,所以,即使就在等号后面马上出现了真实类型。如果这个时候(还是编译期),我(代码)对你(编译器)说:“你带这个人(List)去男厕所(执行removeLast方法)”,你(编译器)会傻傻地拒绝(编译错误),说:“我不知道他是不是个男人(LinkedList),不能让这个人(List)去做只有男人(LinkedList)才能做的事情”。这个时候(编译期),我(代码)只能改口(改掉你错误代码)说:“明天,有个男人(声明类型,也就是等号左边那个类型)要来,你带他去男厕所(执行removeLast)”。这个时候,你(编译器)会很高兴的确认我给你的任务(编译通过)到了第二天(运行期,对应java命令执行的时间),那个人来了,检查无误,果然是个男人,而且还是个帅哥(男人的子类,好比上面MyLinkedList)。反正不管是帅哥也好,糟老头(其他LinkedList子类)也罢,反正一定是个男人,一定能去男厕所(执行在在LinkedList中定义过的removeLast方法)。
进了男厕所,不同的男人(不同子类)有不同的表现,有的唱歌,有的有前列腺,因而慢腾腾,还有小孩子的直接拉在了裤子上(抛exception)。具体怎么样的表现,现在(编译期)你没法知道,只有到明天,进了男厕所(运行期)才知道