首先看一下 Android 开发者指南中的以下引用:
枚举类型需要的内存比静态常量多两倍以上。在 Android 上应严格避免使用枚举类型。
Java 中的每个类(包括匿名内部类)大约使用了 500 字节的代码。 https://developer.android.com/training/articles/memory.html
尽管第一个要点中给出了“严格避免在 Android 上使用枚举类型”的不详警告,但是该要点下面所说的实际上并不像听起来那么糟糕。常量是32位整数,而枚举类型可能是64位引用。有关枚举类型成本加倍的数学计算是有道理的,似乎并不那么可怕。
我的担忧在于,这个警告可能在一定程度上基于第二个要点。
我想知道一个简单的“class”枚举声明是否会带来500字节的开销?每个枚举类型呢?
由于枚举类型可以使用自己的方法而不仅仅是实例,因此它们似乎可以是“扩展类”。简单地说,如果我的枚举类型是 Color,并且我有20种 Color 枚举类型(例如:红色、蓝色、绿色...),那么每个类型就需要500字节的开销吗?