我正在尝试打印存储在2个单独类的链表中的变量(包含字符串变量的标题节点和包含整数值的链接节点)。我收到一个错误,说它无法找到符号。
我不确定出了什么问题。如果您需要更多信息,请与我们联系。
以下是完整代码:
package symboltable;
public class SymbolTable {
IdentifierHeaderNode[] table = new IdentifierHeaderNode[50];
IdentifierHeaderNode ptr;
public SymbolTable(){
for(int x = 0; x <= 49; x++)
}
public void addIdentifier(String info, int lineNumber){
LineNode ptr;
LineNode newNode;
boolean found = false;
int y = 0;
int x = 0;
//Look for Identifier In Array If Found, Add New Node to End
while(table[y] != null && !found){
if (table[y].info.equals(info)){
newNode = new LineNode (lineNumber, null);
found = true;
}
else
y++;
}
//If Identifier Not Found, Create New Identifier and Add Node to End
IdentifierHeaderNode ident1;
if(found == false){
newNode = new LineNode (lineNumber, null);
ident1 = new IdentifierHeaderNode();
//Add New Identifier to Table
while(!found && x <= 50){
if (table[x] == null){
table[x] = ident1;
found = true;
}
else
x = x + 1;
}
}
}
public void print(){
System.out.println("Symbol Table");
System.out.println("------------------------------------------------");
System.out.println("Identifier Name \t Line Appears On");
int x = 0;
boolean end = false;
while(table[x] != null &&!end){
System.out.print(table[x].info);
System.out.println( table[x].lineNumber);
}
}
}
以下是错误的位置:
if (table[y].info.equals(info))
System.out.print(table[x].info);
System.out.println( table[x].lineNumber);
每个人说“找不到符号” 这些变量在每个类中声明。
IdentifierHeaderNode类: 包符号;
公共类IdentifierHeaderNode {
public static String info;
public LineNode first;
public IdentifierHeaderNode(){
}
public IdentifierHeaderNode (String info, LineNode node){
this.info = info;
first = node;
}
public String getInfo(){
return info;
}
}
答案 0 :(得分:0)
我看到的一个问题是在table[x].lineNumber
行......我没有在IdentifierHeaderNode中看到一个名为lineNumber的字段,除非你省略了一些代码。
此外,在if (table[y].info.equals(info))
中,我看不到您在哪里定义info
,并且(虽然它不应该导致错误),因为IdentifierHeaderNode.info
是静态的,您应该访问就像那样,而不是table[y].info
。
我希望有帮助:)