如何预先定义Enum中的任何类型的值?我怎么能从我的枚举在Java中设置整数,字符串值?
public enum Hardware
{
USB2(0) = "external low speed",
PCI(1) = "embedded",
USB3(2) = "external high speed
}
System.out.println(Hardware.USB2) // show me external low speed
如何预先定义Enum中的任何类型的值?我怎么能从我的枚举在Java中设置整数,字符串值?
public enum Hardware
{
USB2(0) = "external low speed",
PCI(1) = "embedded",
USB3(2) = "external high speed
}
System.out.println(Hardware.USB2) // show me external low speed
enum Hardware
{
USB2("external low speed"),
PCI("embedded"),
USB3("external high speed");
private String val;
private Hardware(String val){
this.val = val;
}
public String toString(){
return val;
}
}
您可以在enums
中定义members
。然后覆盖toString()
您可以定义一个getDesc()
方法,该方法更好地覆盖IMO,覆盖toString()
。
public enum Hardware
{
USB2(0, "external low speed"),
PCI(1,"embedded"),
USB3(2,"external high speed");
private String desc;
private int id;
private Hardware(int id, String desc) {
this.id = id;
this.desc = desc;
}
@Override
public String toString() {
return this.desc;
}
}
只要注意这是解决方案可开始Java
版本1.5
构造缺少的,否则这是正确的。 –
+1谢谢指出构造函数 – ssedano
public enum Hardware {
USB2(0, "external low speed"),
PCI(1,"embedded"),
USB3(2,"external high speed);
String desc;
int id;
public Hardware(int id, String desc) {
this.id = id;
this.desc = desc;
}
public String toString() {
return this.desc;
}
}
谢谢,我不想制作外部文件。所以这工作。 – YumYumYum