2010-03-22 44 views

回答

16

這對於Java來說是不可能的,因爲每個項目都必須是有效的標識符(並且有效的Java標識符不能包含破折號)。

最接近的事會被添加自定義屬性爲每個枚舉值或覆蓋toString方法,這樣你就可以做到以下幾點:

Test.EMPLOYEE_ID.getRealName() //Returns "employee-id" 

public enum Test 
    EMPLOYEE_ID("employee-id"); 

    private Test(String realName) { 
     this.realName = realName; 
    } 
    public String getRealName() { 
     return realName; 
    } 
    private final String realName; 
} 
+3

並使用枚舉常量的全部大寫。 – 2010-03-22 14:55:09

+1

你應該讓realName最終。 – 2010-03-22 16:07:09

0

你不能聲明枚舉用連字符常量。 如果連字符被檢索爲enum的值,則應在枚舉中使用value方法,您可以在其toString方法中使用該方法或在枚舉上訪問此方法以獲取連字符值

1

您不能做這個。枚舉常量必須是合法的Java標識符。合法的Java標識符不能包含-。如果這是一個可接受的替代品,您可以使用_

13

這不是特定於枚舉。這適用於Java中的所有標識符:類名稱,方法名稱,變量名稱等等。連字符根本不被允許。您可以在JLS 3.8中找到所有有效的字符。

爲了說明問題:

int num-ber = 5; 
int num = 4; 
int ber = 3; 

System.out.println(num-ber); 

你會想到會在這裏出現呢?

相關問題