【问题标题】:"-" separated strings in enum java“-”枚举java中的分隔字符串
【发布时间】:2012-05-29 17:15:49
【问题描述】:

我在使用“-”分隔的字符串在 Java 中创建枚举时遇到问题:

public enum CipherList{

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

我收到编译错误。

【问题讨论】:

  • 为什么需要标识符中的破折号?因为我认为你需要一些东西like this
  • - 在标识符内无效(因为它会被减号/减法运算混淆。无论如何,如果您希望得到一些回复,下次请提供有关错误的更多信息

标签: java enums compilation


【解决方案1】:

如果您想通过枚举使用精确的字符串,您可以使用以下方法。

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;
   } 
}

【讨论】:

    【解决方案2】:

    - 符号不能用于 Java 的标识符中。 (如果RSAMD5 恰好是整数,RSA-MD5 将如何解析?)

    我建议你使用

    RSA_MD5, AES128_SHA, AES256_SHA;
    

    根据常量的 Java 编码约定related question

    【讨论】:

    • 我不能把它作为一个字符串,因为我将使用相同的值进行处理..
    • 你的意思是在处理过程中会使用name()返回的值?
    【解决方案3】:

    枚举常量必须使用有效的 Java 标识符,并且标识符不允许包含破折号。

    例如,您可以将破折​​号替换为下划线:

    public enum CipherList{
       RSA_MD5, AES128_SHA, AES256_SHA;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      • 1970-01-01
      相关资源
      最近更新 更多