找不到符号 - 方法错误

时间:2014-06-05 06:41:58

标签: java methods

我在此代码中遇到问题。 我已经在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());

}
}

3 个答案:

答案 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();