2012-10-09 35 views
0

我收到以下三个cannot find symbol错误,我不知道为什么!遇到“无法找到符号”的问题 - Java

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[]) {} 
} 

回答

3

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

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

+0

谢谢,我已经从另外一个这样的代码复制了一段代码,错过了,我完全忘记了我的构造函数! – user1695505

+0

现在工作吗? –

+0

@ user1695505 ..如果这解决了你的问题..不要忘了标记这个答案为可接受的。点击箭头旁边的答案.. –

0

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