所以我很困惑。我有一些代码正在我的main方法中使用,需要覆盖给定的方法并打印出一个语句。我在offer(E s)
中使用了该语句,但似乎无法将peek()
和size()
中的语句打印出来。它们运行正常,但“在列表中偷看”和“报告列表大小”这些语句不会在其方法中打印出来。如果有些人能够发光,我们将不胜感激!主要位于单独的文件
import java.io.*;
import java.util.*;
import java.awt.*; //for Point
public class StudentList<E>extends LinkedList<E> {
public boolean offer(E s) {
super.offer(s);
System.out.println("Offering "+ s);
return true;
}
public boolean contains(Object o) {
super.contains(o);
return false;
}
public E peek(E slist){
super.peek();
System.out.println("Peeking at list") ;
return slist;
}
public int size(Integer ilist){
System.out.println("Reporting list size");
size(ilist);
//System.out.println("Reporting list size");
return ilist;
}
}
这是主要方法:
public class OfferDriver
{
public static void main ( String[] args)
{
StudentList<Integer> ilist = new StudentList<Integer>( );
StudentList<String> slist = new StudentList<String>( );
String s;
Integer i;
Scanner in = new Scanner(System.in);
System.out.print("Please enter a word to offer (\"stop\" to stop):\t");
while (in.hasNext()) {
s = in.next();
if (s.equalsIgnoreCase("stop")) { break; }
slist.offer(s);
System.out.println("Size is: " + slist.size());
System.out.print("Please enter a word to offer (\"stop\" to stop):\t");
}
System.out.println("\n" + slist);
String si = slist.peek();
System.out.println("Testing peek(): " + si);
System.out.print("Please enter an integer to offer (<any word> to stop):\t");
while (in.hasNextInt()) {
i = in.nextInt();
ilist.offer(i);
System.out.println("Size is: " + ilist.size());
System.out.print("Please enter an integer to offer (<any word> to stop):\t");
}
System.out.println("\n" + ilist);
int pi = ilist.peek();
System.out.println("Testing peek(): " + pi);
}
}
}
答案 0 :(得分:0)
很可能未调用peek
和size
方法。您始终可以在调试器的帮助下进行检查。你似乎错误地覆盖了这些方法。因此,请尝试在方法之上添加@override
。
LinkedList peek方法不接受任何参数,但您的方法可以:
public E peek(E slist)
所以这意味着你没有改写方法。
答案 1 :(得分:0)
peek()
与您已实施的peek(E)
不同。
您已在peek
中将StduentList
定义为
public E peek(E slist) {
但正在使用
String si = slist.peek();
要打电话......
事实上,我很难弄清楚为什么你需要首先覆盖任何方法......
答案 2 :(得分:0)
当你在main中调用peek()和size()时,你从
调用了这个方法 String java.util.LinkedList.peek()
int java.util.LinkedList.size()
这不是您在StudentList类中编写的方法。