Java 在交换机中计算枚举
我不确定在这种情况下应该放什么,因为传递到方法中的选择是数值的,我发现的大多数示例都是字符串比较。。我总是可以强迫案件是一个和两个,但是。。。这将扼杀将枚举放在首位的意义。实际上,该方法应该采用Java 在交换机中计算枚举,java,enums,Java,Enums,我不确定在这种情况下应该放什么,因为传递到方法中的选择是数值的,我发现的大多数示例都是字符串比较。。我总是可以强迫案件是一个和两个,但是。。。这将扼杀将枚举放在首位的意义。实际上,该方法应该采用类型选择,而不是int选择,作为参数。(而且,Type确实应该大写,并给它起个更好的名字。) 您是在问如何从序数整数值到枚举值?这不是一个好主意,但如果必须,您可以通过以下方式转换: enum type {WD, AGGT, ACCT} public type empType public void
类型选择
,而不是int选择
,作为参数。(而且,Type
确实应该大写,并给它起个更好的名字。)
您是在问如何从序数整数值到枚举值?这不是一个好主意,但如果必须,您可以通过以下方式转换:
enum type {WD, AGGT, ACCT}
public type empType
public void salary(int choice, int hours_Worked)
{
switch(choice)
{
case ?:
case ?:
case ?:
}
}
public void salary(Type choice, int hours_Worked)
{
switch(choice)
{
case WD:
case ACCT:
case AGGT:
}
}
。。。但同样,这是在修复糟糕的设计。更改该方法。实际上,该方法应该采用
类型选择
,而不是int选择
,作为参数。(而且,Type
确实应该大写,并给它起个更好的名字。)
您是在问如何从序数整数值到枚举值?这不是一个好主意,但如果必须,您可以通过以下方式转换:
enum type {WD, AGGT, ACCT}
public type empType
public void salary(int choice, int hours_Worked)
{
switch(choice)
{
case ?:
case ?:
case ?:
}
}
public void salary(Type choice, int hours_Worked)
{
switch(choice)
{
case WD:
case ACCT:
case AGGT:
}
}
。。。但同样,这是在修复糟糕的设计。更改该方法。首先,用以下方式声明Java中的枚举:
type valueOf(int ordinal) {
for (type t : type.values()) {
if (t.ordinal() == ordinal) {
return t;
}
}
throw new IllegalArgumentException();
}
按照约定,枚举名称应为大写。要引用枚举值,只需对其进行限定,例如EmpType.WD
。但是,在开关内部,它是推断的,因此必须忽略它,例如:
public enum EmpType {
WD, AGGT, ACCT
}
请注意,变量类型声明为
EmpType
,而不是int。请看一看。首先,Java中的枚举以以下方式声明:
type valueOf(int ordinal) {
for (type t : type.values()) {
if (t.ordinal() == ordinal) {
return t;
}
}
throw new IllegalArgumentException();
}
按照约定,枚举名称应为大写。要引用枚举值,只需对其进行限定,例如EmpType.WD
。但是,在开关内部,它是推断的,因此必须忽略它,例如:
public enum EmpType {
WD, AGGT, ACCT
}
请注意,变量类型声明为
EmpType
,而不是int。请查看。该方法应如下所示:
EmpType myEmpType = EmpType.WD;
switch (myEmpType) {
case WD:
break;
default:
}
因为如果你有一个枚举,你应该使用它,而不是匿名的int
如果确实需要,可以通过以下方式转换序号(这是一个实现细节):
enum type {WD, AGGT, ACCT}
public type empType
public void salary(int choice, int hours_Worked)
{
switch(choice)
{
case ?:
case ?:
case ?:
}
}
public void salary(Type choice, int hours_Worked)
{
switch(choice)
{
case WD:
case ACCT:
case AGGT:
}
}
方法应如下所示:
EmpType myEmpType = EmpType.WD;
switch (myEmpType) {
case WD:
break;
default:
}
因为如果你有一个枚举,你应该使用它,而不是匿名的int
如果确实需要,可以通过以下方式转换序号(这是一个实现细节):
enum type {WD, AGGT, ACCT}
public type empType
public void salary(int choice, int hours_Worked)
{
switch(choice)
{
case ?:
case ?:
case ?:
}
}
public void salary(Type choice, int hours_Worked)
{
switch(choice)
{
case WD:
case ACCT:
case AGGT:
}
}
您定义了一个enum
类型
。但是您的示例不清楚您想用它做什么。类型
和选择
有什么关系?您定义了一个枚举类型
。但是您的示例不清楚您想用它做什么。“<代码>类型< /代码>和<代码>选择< /代码>相关?嗯,我想我想这是一种坏的猜想,我会改变方法。谢谢。你可以考虑用枚举免费获得的Type。值()方法。现在可以在一行中实现此方法:return type.values()[ordinal];如果序是无效的,这将抛出运行时异常(索引xObjFIDENT)。我想,我想这是一种坏的猜想。我会改变方法。谢谢。您可以考虑用枚举免费获得的Type。值()方法。现在可以在一行中实现此方法:return type.values()[ordinal];如果序号无效,这将引发运行时异常(IndexOutOfBounds)。请看教程,我已在帖子中添加了链接。请看教程,我已在帖子中添加了链接。