无法解析或不是字段

无法解析或不是字段

我在后缀计算器中遇到此错误:integerOperand无法解析或不是字段。下面,我显示了主要代码以及IntegerOperand类文件中的代码。我怎样才能解决这个问题?我试图从IntegerOperand类调用add函数。

public class IntegerOperand implements CalculatorOperand<IntegerOperand> {

    BigInteger value;

    IntegerOperand (BigInteger value) {
        this.value = value;
    }

    public IntegerOperand add (IntegerOperand that) {
        return new IntegerOperand(this.value.add(that.value));
    }
    public IntegerOperand subtract (IntegerOperand that) {
        return new IntegerOperand(this.value.subtract(that.value));
    }
    public IntegerOperand multiply (IntegerOperand that) {
        return new IntegerOperand(this.value.multiply(that.value));
    }

    public String toString () {
        return value.toString();
    }
}


public void operation (OperationType operation) {

        T t1;
        T t2;
        if(stack.isEmpty())
        {

              t2= stack.pop();
             t1= stack.pop();
            stack.push(t1.IntegerOperand.add(t2));

        }
    }

最佳答案

主要问题是您没有正确调用该函数。

// You don't need the class name
//stack.push(t1.IntegerOperand.add(t2));
stack.push(t1.add(t2));


其次,检查堆栈是否为空,然后检查堆栈是否为空。但是您应该检查堆栈是否不为空:pop。但是由于您随后要对if (!stack.isEmpty())进行2次调用,因此应该检查堆栈中是否至少有2个项目。

if (stack.size() >= 2) {
    t2 = stack.pop();
    t1 = stack.pop();
    stack.push(t1.add(t2));
}

关于java - Postfix Calculator Java-无法解析或不是字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53263155/

10-11 19:13