gpt4 book ai didi

java - Postfix 计算器 Java - 无法解析或不是字段

转载 作者:行者123 更新时间:2023-12-02 10:36:23 25 4
gpt4 key购买 nike

我在后缀计算器中遇到此错误:整数操作数无法解析或不是字段。下面我展示了主要代码以及 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));

其次,检查堆栈是否为空,如果是,则尝试从中弹出。但您应该检查堆栈是否为空:if (!stack.isEmpty())。但由于您随后对 pop 进行了 2 次调用,因此您应该检查堆栈中是否至少有 2 个项目。

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com