2012-05-23 276 views
2

分隔的字符串我在創造在Java中使用枚舉的一個問題「 - 」 - 分隔的字符串:「 - 」枚舉的Java

public enum CipherList{ 

    RSA-MD5,AES128-SHA,AES256-SHA; 
} 

我收到編譯錯誤。

+2

爲什麼你需要標識符中的破折號?因爲我認爲你需要[像這樣](http://stackoverflow.com/a/9781903/737620) – wrock

+0

'-'在標識符內無效(因爲它會被減號/減法運算混淆。無論如何下次提供有關錯誤的更多信息,如果你期待一些回覆 – SJuan76

回答

7

-符號不能用於Java中的標識符。 (如何將RSA-MD5來,如果RSAMD5正好是整數解析?)

我建議你根據Java編碼規範常數related question使用

RSA_MD5, AES128_SHA, AES256_SHA; 

+0

不能我把它作爲一個字符串,因爲我將使用相同的值進行處理。 – Style

+0

你的意思是,你將使用由name()在處理? – aioobe

3

枚舉常量必須使用有效的Java標識符,並且不允許標識符包含破折號。

你可以,例如,用下劃線代替破折號:

public enum CipherList{ 
    RSA_MD5, AES128_SHA, AES256_SHA; 
} 
3

如果你想用枚舉,您可以使用下面的方法來使用精確匹配。

enum CipherList{ 
    CHIP_ONE("RSA-MD5"),CHIP_TWO("AES128-SHA"),CHIP_THREE("AES256-SHA"); 
    private String code; 
    CipherList(String code) { 
     code= code; 
    } 
    String getcode() { 
     return code; 
    } 
}