【问题标题】:Enum : Difference between using enum and class with static variables [duplicate]枚举:使用枚举和带有静态变量的类之间的区别[重复]
【发布时间】:2017-04-19 13:45:16
【问题描述】:

我有一个关于使用 enum 和使用 java class 以及定义 static variables 的小问题。

例如,我们可以像这样定义枚举:-

public enum RequestCodeEnum {

    TRANSACTION(1), REPORTS(2), BUDGET(3), CATEGORY(4), CURRENCY(5);

    private int value;

    private RequestCodeEnum(int value) {
        this.value = value;
    }

    public int getCode(){
        return value;
    }

}

同样,我们可以使用带有静态变量的 java 类,例如:-

public class ActivityRequestCode {

    public static int TRANSACTION_CODE  = 1;
    public static int REPORTS           = 2;
    public static int BUDGET            = 3;
    public static int CATEGORY          = 4;
    public static int CURRENCY          = 5;

}

为了调用我们可以做的两个类:-

int i = RequestCodeEnum.CATEGORY.getCode();
int j = ActivityRequestCode.TRANSACTION_CODE;

我想知道它会产生什么不同,或者它们是彼此的替代解决方案。 7

谢谢。

【问题讨论】:

标签: java android design-patterns enums static-variables


【解决方案1】:

不同之处在于常量在 Android 上更受欢迎,因为它们消耗的内存更少。

枚举通常需要两倍于静态的内存 常数。您应该严格避免在 Android 上使用枚举。

https://developer.android.com/topic/performance/memory.html

【讨论】:

猜你喜欢
  • 2016-01-02
  • 2013-10-27
  • 2011-07-30
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多