0

我收到以下三个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[]) {}
}
4

2 回答 2

3

看起来你没有stackandcount变量。您需要声明和定义它们,并可能创建 getter 和 setter。

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

于 2012-10-09T16:38:51.740 回答
0

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

于 2012-10-09T16:39:54.220 回答