2017-12-17 12 views
-5

私はJavaを使い慣れていないので、静的ルックアップ値を保持するための設計が必要です。Javaスタティックルックアップ定数 - デザインアイデアが必要

私はTRANSACTIONSTATUS、LOGINSTATUS、BOOKINGSTATUSなどのようなさまざまなステータスを持っていますが、それぞれ独自のキーと値のセットを持っています。

例:

  1. TRANSACTIONSTATUS(PD =、PEは= "保留EXCEPTION" "保留"、PSは= "提出を保留")
  2. LOGINSTATUS(LG = "LOGGED IN"、FDは= "FAILED "UL =" USER LOCKED ")

私は、アプリケーションの起動時にこれらの静的な値をメモリに保持する方法を思いつき、必要なときに参照するようにしています。私は、Javaのenumを読んで、ハッシュマップにプロパティを保持していますが、正確にはわかりません。助けてください。

答えて

1

ここに私が考えていることがあります。同様に、LoginStatusの列挙型を構築できます。まともなJavaリファレンスがあれば、さらに助けてください。

public enum TransactionStatus 
{ 
    PD("Pending"), 
    PE("Pending Exception"), 
    PS("Pending Submission"); 

    private final String value; 

    TransactionStatus(String value) 
    { 
     this.value = value; 
    } 
    public String getValue() 
    { 
     return value; 
    } 
} 
+0

単一の列挙型ですべてのステータスを管理する方法はありますか? TransactionStatus、LoginStatusなどと同様? – user2904845

+0

私は単一のEnumをお勧めしません。別々の列挙型を使用すると、コードがLoginイベント中にTransactionStatusを適用できなくなります。 –

+0

繰り返し処理するだけで、指定した列挙型のカテゴリは異なるオブジェクトに適用されます。すべてのカテゴリに別々の列挙型を作成するのが正しい方法です。これにより、タイプセーフな状態セッターを使用して、正しいオブジェクトの正しい状態を設定していることが保証されます。単一の列挙型を持つと、簡単に設定することができます。トランザクションのBookingStatus.FAILED。そして、それらにアクセスする限り、特別な構造を持たずに列挙型にアクセスすることができます。例えば、いつでもTransactionStatus.PDを利用できます。 – Veera

関連する問題