我尝试在基于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)
};
答案 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;
}
};