0

dataTypeに基づいてクエリを作成するアプリで高度な検索機能を作成しようとしています。

私の潜在的なデータ型はFLOAT, NUMBER, CHAR, VARCHAR2, DATE, TIMESTAMP(6)

「シェルからコード化」しようとしていますが、ArrayListを使用して値を格納する代わりに、enumこれらの6つの値しかなく、変更されないため、使用しようとしました。

TIMESTAMP(6)かっこが原因で苦労しています。

列挙値を宣言するにはどうすればよいTIMESTAMP(6)ですか?

現在、以下のスニペットでエラーが発生します。コンストラクターTableBacking.dataTypeOptions(int)が未定義です。

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

1 に答える 1

6

列挙型定数名は有効な識別子である必要があります。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;
    }

};
于 2013-02-07T19:14:50.107 に答える