Java如何创建包含元素“TIMESTAMP(6)”的枚举

时间:2013-02-07 19:13:06

标签: java

我尝试在基于dataType构建查询的应用中构建高级搜索功能。

我的潜在数据类型为FLOAT, NUMBER, CHAR, VARCHAR2, DATE, TIMESTAMP(6)

我试图从我的shell中编写代码"而不是使用ArrayList来存储值,我打算尝试使用enum,因为我只有这6个值,它们永远不会改变。

由于括号,

TIMESTAMP(6)让我很难过。

如何声明枚举值TIMESTAMP(6)

目前下面的代码片段给出了错误:构造函数TableBacking.dataTypeOptions(int)未定义。

public enum dataTypeOptions {
    FLOAT, NUMBER, CHAR, VARCHAR2, DATE, TIMESTAMP(6)
};

1 个答案:

答案 0 :(得分:7)

枚举常量名称必须是有效的标识符。因此,您可以将其称为TIMESTAMP_6

如果您以后需要返回TIMESTAMP(6)的字符串表示形式,则可以在枚举中使用String构造函数来定义该值。

看起来像这样:

public enum dataTypeOptions {

    FLOAT, NUMBER, CHAR, VARCHAR2, DATE, TIMESTAMP_6("TIMESTAMP(6)");
    private String stringRepresentation;

    dataTypeOptions() { //default behaviour, use the enum constant identifier
        this.stringRepresentation = this.name();
    }

    dataTypeOptions(String s) {
        this.stringRepresentation = s;
    }

    public String getStringRepresentation() {
        return stringRepresentation;
    }

};