枚举以数字开头

时间:2018-06-08 22:58:26

标签: java enums formatting

我有一个来自遗留系统的命令列表,我将其枚举为枚举。它们几乎都是3个大写字母[A-Z],但其中有两个是3位数字。

为了举例,我们说他们是{FOO,BAR,BAZ,QUX,007,999}。

我试图找到一个不会让我或其他任何人头疼的命名惯例。这些值可能会在Java,JSON和 * shudders * Excel之间的某个时刻进行转换。

这就是我现在所拥有的。

UserSchema.methods.apiRepr = function() {
    return {
        firstName: this.firstName, 
        lastName: this.lastName, 
        username: this.username, 
        id: this._id
    }
}

我想知道我是否应该担心导致格式转换问题的主要下划线。如果是这样,在这种情况下会有更好的约定吗?

1 个答案:

答案 0 :(得分:0)

我没有看到Java命名如何影响JSON序列化/反序列化。 JSON中的标记(或“元素名称”,如果您愿意)是一个字符串,可以是“_007”以及“007”或“BAZ”。此外,我不知道它如何导致Excel出现任何困难。

结论:您的姓名正常,不用担心。

顺便提一下,以下方法存在潜在错误:

this.code = this.name();

假设您在几个月内进行重构并重命名您的枚举元素,如_007 - > CMD_007,FOO - > CMD_FOO。然后重命名使用_007的逻辑仍然有效,因为它具有代码“007”,在重构期间没有改变。但重命名FOO - > CMD_FOO导致代码从“FOO”更改为“CMD_FOO”。好像您已将FOO(“FOO”)更改为CMD_FOO(“CMD_FOO”)。这可能会制造你的逻辑。这里最糟糕的是,您将看到没有编译错误,并且您将在运行时稍后注意到这些问题。我建议你明确声明代码。