int和布尔错误

时间:2009-12-07 02:56:11

标签: java boolean

我有一个生成和错误的方法,一个int是预期的但是找到了boolean但是当我把它切换到一个布尔值时它说的是相同的错误,但反向int和boolean。这是我的代码:

private void compileDeclaration(boolean isGlobal) {
         if (equals(theToken, "int")) {
            accept("int");
            String ident = theToken;
            if (!isIdent(theToken)) t.error("expected identifier, got " + theToken);
            else if (isGlobal){
                symTable.allocVar(ident, isGlobal);
            }

            if (!isGlobal) cs.emit(Machine.ALLOC, symTable.stackFrameSize());
            //dprint("declaring int " + ident);
            theToken = t.token();
            accept (";");
        } else if (equals (theToken, "final")) {
            accept("final");
            accept("int");
            String ident = theToken;
            if (!isIdent(theToken)) t.error("expected identifier, got " + theToken);
            theToken = t.token();
            accept("=");
            int numvalue = new Integer(theToken).intValue();
            if (!isNumber(theToken)) t.error("expected number, got " + theToken);
            else if (numvalue = 0) { **//This is where it highlights my error**
                symTable.allocConst(ident, numvalue);
            }

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:8)

该行

else if (numvalue = 0) { **//This is where it highlights my error**

缺少一个等号,即

else if (numvalue == 0) { **//This is where it highlights my error**

答案 1 :(得分:1)

你最有可能在两个不同的地方调用它,一次使用整数,一次使用布尔值。

或者symTable.allocVar()期望一个int。