遇到“无法找到符号”的麻烦 - Java

时间:2012-10-09 16:35:52

标签: java compiler-errors

我收到以下三个cannot find symbol错误,我不确定原因!

GrammerQueue.java:9: cannot find symbol
symbol  : constructor GrammerStructure()
location: class GrammerStructure
public class GrammerQueue extends GrammerStructure implements StringQueue{
           ^
GrammerQueue.java:45: cannot find symbol
symbol  : variable stack
location: class GrammerQueue
           this.stack += tmpAr[i];
                ^
GrammerQueue.java:47: cannot find symbol
symbol  : variable count
location: class GrammerQueue
       this.count--;
            ^
3 errors

我在另一个脚本上遇到此错误并通过调用该类型的新对象而不是直接调用我的类创建的对象来解决它。但是,我甚至都没有尝试创建一个对象!我该怎么办?

以下是代码:

import java.lang.*;

public class GrammerQueue extends GrammerStructure implements StringQueue {

    private String queue = "";
    private String structName;

    // @override
    public boolean offer(String item) {
        if (item.length() == 0) // We don't accept empty Strings!
            return false;
        else if (this.queue.length() == 0) // If new queue, just add - no null.
            queue = item;
        else
            // Append null and item for seperation.
            queue += "\0" + item;
        return true; // done.
    }

    // @override
    public String[] asArray() {
        // Splits the string at each null character and returns it as an array.
        String[] array = this.queue.split("\0");
        return array;
    }

    // @override
    public void GrammerStructure(String structureName) {
        this.structName = structureName;
    }

    // @override
    public String take() throws EmptyException {
        // If empty, throw errors.
        if (this.queue.length() == 0)
            throw new EmptyException(structName);
        String[] tmpAr = this.asArray();
        // Empties the stac now that we have it in a temp array.
        this.queue = "";
        // FIFO, so exclude first element in reconstruction.
        for (int i = 1; i < tmpAr.length; i++)
            this.stack += tmpAr[i];
        // We made it this far without error, so reduce count.
        this.count--;
        // Return the first item.
        return tmpAr[0];
    }

    // @override
    public String peek() {
        // Empty string check.
        if (this.queue.length() == 0)
            return null;
        String[] tmpAr = this.asArray();
        // Return the first item.
        return tmpAr[0];
    }

    // @override
    public int size() {
        if (this.queue.length() == 0)
            return 0;
        String[] tmpAr = this.asArray();
        return tmpAr.length;
    }

    // @override
    public void clear() throws EmptyException {
        // If empty, throw errors.
        if (this.queue.length() == 0)
            throw new EmptyException(structName);
        else
            this.queue = ""; // Empty now.
    }

    public void main(String args[]) {}
}

2 个答案:

答案 0 :(得分:3)

您似乎没有stackcount变量。您需要声明并定义它们,并可能创建getter和setter。

您需要为GrammerStructure导入一个包,假设GrammerStructure位于不同的包中。

答案 1 :(得分:0)

GrammerQueue扩展了GrammerStructure,这是一个不存在的类(AFAIK)。