【问题标题】:Java Static Lookup Constants - Need Design ideaJava 静态查找常量 - 需要设计理念
【发布时间】:2017-12-17 06:10:55
【问题描述】:

我是 Java 新手,在设计保存静态查找值时需要一些帮助。

我有各种 (150) 种状态,例如 TRANSACTIONSTATUS、LOGINSTATUS、BOOKINGSTATUS 等,每种状态都有自己的一组键和值。

例如:

  1. TRANSACTIONSTATUS(PD="PENDING", PE="PENDING EXCEPTION", PS="PENDING SUBMISSION")
  2. LOGINSTATUS(LG="LOGGED IN", FD="FAILED" UL="USER LOCKED")

我试图想出如何在应用程序启动时将这些静态值保存在内存中,并在我需要时引用它。我已经通读了 java 枚举并将属性保存在哈希图中,但不完全确定如何。请帮忙。

【问题讨论】:

    标签: java static constants


    【解决方案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;
        }
    }
    

    【讨论】:

    • 同意。有没有办法管理单个枚举中的所有状态?像 TransactionStatus、LoginStatus 等?
    • 我不推荐单个枚举。使用单独的枚举会阻止代码在登录事件期间应用 TransactionStatus。
    • 重申一下,您提供的枚举类别适用于不同的对象。为每个类别创建一个单独的枚举是正确的方法。这可确保您使用类型安全的状态设置器为正确的对象设置正确的状态。拥有一个枚举很容易导致您设置例如BookingStatus.FAILED 的交易。就访问它们而言,您可以访问任何枚举而无需任何特殊构造。例如TransactionStatus.PD 随时可供您使用。
    猜你喜欢
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    相关资源
    最近更新 更多