我在此代码中遇到问题。 我已经在Bag类中清楚地编写了方法show()。 但是当我尝试访问main()中的show方法时,为什么编译器显示找不到该方法的符号?
public class Bag1<Item>
{
private int N;
private Node<Item> first;
public Bag1()
{
N = 0;
first = null;
}
private class Node<Item>
{
private Item item;
private Node<Item> next;
}
public void add(Item item)
{
Node<Item> oldfirst = first;
first = new Node<Item>();
first.item = item;
first.next = oldfirst;
N++;
}
public int size()
{
return N;
}
public void show()
{
Node<Item> oldfirst = first;
while(first.next!=null)
{
System.out.println(first.item + " ");
first = first.next;
}
}
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
Bag<String> bag = new Bag<String>();
while(s.hasNext())
{
String item = s.next();
if(!item.equals("-"))
bag.add(item);
else
break;
}
bag.show();
System.out.println("Size of the bag: " +bag.size());
}
}
答案 0 :(得分:0)
您的bag
对象的类型为Bag<String>
,但您的show
方法位于Bag1
对象上
答案 1 :(得分:0)
在main()方法中改变这样的第二行,可能它应该适合你, Bag1 bag = new Bag1();
在编译java应用程序时,java编译器检查Bag1类是否包含show()方法,如果方法不可用,java编译器抛出“找不到符号”:show()。
答案 2 :(得分:0)
您正尝试使用Bag
类对象访问 show()方法,该类对象在您的课程中不存在,应为Bag1
Bag1<String> bag1=new Bag1<String>();
bag1.show();