gpt4 book ai didi

java - 如何修复操作 switch 语句

转载 作者:太空宇宙 更新时间:2023-11-04 09:18:17 25 4
gpt4 key购买 nike

在这个名为 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>

我收到了一些错误,从 switch(操作)行开始。我该如何解决这个问题?另外,我可以在 AClass 中插入枚举运算符而不是使用接口(interface)吗?

最佳答案

Java switch 语句不支持所有类。来自java文档,与 if-then 和 if-then-else 语句不同,switch 语句可以有多个可能的执行路径。开关适用于 byte、short、char 和 int 原始数据类型。它还适用于枚举类型(在枚举类型中讨论)、String 类以及包装某些基本类型的一些特殊类:字符、字节、短整型和整数(在数字和字符串中讨论)。

AClass <Operator> operation = new AClass <Operator>(); // will not work
Operator operation = Operator.ADD; // will work since operator is an enum;

关于java - 如何修复操作 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58681886/

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