如何預先定義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