【发布时间】:2019-11-03 15:56:01
【问题描述】:
在这个名为 AClass 的类中,我尝试制作一个 switch 语句,该语句将使用在两个值之间输入的运算符。
public interface Operation {
public enum Operator {Add, Sub, Mult, Div, Rem}
}
import java.util.*;
import java.io.*;
public class AClass<I> implements Operation {
AClass <Integer> leftoperand = new AClass <Integer>();
AClass <Operator> operation = new AClass <Operator>();
AClass <Integer> rightoperand = new AClass <Integer>();
public Integer value (SClass sc) {
switch (operation) {
case Add:
return leftoperand.value(sc) + rightoperand.value(sc);
case Sub:
return leftoperand.value(sc) - rightoperand.value(sc);
case Mult:
return leftoperand.value(sc) * rightoperand.value(sc);
case Div:
return leftoperand.value(sc) / rightoperand.value(sc);
case Rem:
return leftoperand.value(sc) % rightoperand.value(sc);
}
}
public String toString() {
return "(" + leftoperand + "," + operation + "," + rightoperand + ")";
}
}
Error: incompatible types: AClass<AClass.Operator> cannot be converted to int
Error: cannot find symbol
symbol: variable Add
location: class AClass<I>
Error: cannot find symbol
symbol: variable Sub
location: class AClass<I>
Error: cannot find symbol
symbol: variable Mult
location: class AClass<I>
Error: cannot find symbol
symbol: variable Div
location: class AClass<I>
Error: cannot find symbol
symbol: variable Rem
location: class AClass<I>
我收到了一些错误,从开关(操作)行开始。我该如何解决这个问题? 另外,我可以在 AClass 中插入枚举运算符而不是使用接口吗?
【问题讨论】:
-
首先将字段
operation更改为Operator,而不是AClass <Operator>,然后将字段重命名为operator。
标签: java enums switch-statement