我正在尝试使用Integer值定义枚举类型。我试图这样做,因为我在我的代码中的多个地方使用此特定值,它只能是这个。下面的代码不起作用。我想我不应该像这样使用枚举。我应该使用一个类并将可能的值放在数组中吗?
public enum Pitch {
"60" , "62", "64", "65", "67", "69", "71", "72", "74";
}
答案 0 :(得分:2)
我不确定枚举是否是最佳选择,但您可以尝试以下方式:
public enum Pitch {
p60(60), p62(62), ...;
private final int pitch;
Pitch(int pitch) {
this.pitch = pitch;
}
public int getValue() {
return pitch;
}
}
答案 1 :(得分:1)
您必须为枚举指定名为LITERALS
的内容。
你能做的是
public enum Pitch
{
SOMENAME(60),
SOMEOTHERNAME(62),
// ...
SOMELASTNAME(74);
public final int value;
public Pitch(int val)
{
this.value = val;
}
}
然后您可以按名称访问您的特定值,您可以写
Pitch pitch = ...;
int pitchInt = pitch.value;
使用值。
答案 2 :(得分:0)
如果您想通过索引访问值,则应使用类似
的数组String[] pitch = new String[] {
"60" , "62", "64", "65", "67", "69", "71", "72", "74"
};
枚举用于不记住值并改为命名:
public enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
因此,您可以通过名称而不是索引来访问值。