2012-05-23 233 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; 
    } 
}