【问题标题】:What's better (when it comes to memory usage), Enum integers or an array of integers? [closed]哪个更好(在内存使用方面),枚举整数或整数数组? [关闭]
【发布时间】:2015-09-11 17:14:06
【问题描述】:

所以,我有一个 SparseArray 来存储 Roboto 字体。

我有一个 FontHelper 类,它可以帮助我组织字体并存储在缓存中。

我有一个方法可以得到我想要的字体:

public static Typeface getRobotoFont(int fontType, Context context) {}

fontType 参数将是一个整数常量,它将访问 SparseArray。例如,您想要 Roboto-Regular,您需要传递整数 ROBOTO_REGULAR。我的问题是,如果我只使用枚举而不是整数常量会更好,如:

enum bla {
    ROBOTOREGULAR(0),
    ...
}

【问题讨论】:

  • 更好的标准是什么?如果您可以回答编辑问题,它可能会保持打开状态。
  • @Alfabravo 我不明白这是如何基于意见的。我们谈论的是类型,显然是关于内存使用。
  • '显然'这并不明显,因为我不能自己搁置任何事情。如果您检查,您的问题中没有提到“内存使用”。就是这样,编辑它,它就会恢复活力。

标签: java android arrays enums constants


【解决方案1】:

我认为最重要的区别是类型检查。 枚举被检查,整数常量未被检查。

【讨论】:

  • 当然,那么,你会使用枚举吗?在枚举的情况下,我将无法传递“错误”的值。所以它会更方便和更易读的代码,对吧?
  • 如果你使用枚举,你可以解决所有这些问题: 1. 除非你在 2 中传递有效值,否则你的代码将无法编译。不需要任何特殊的“错误输入”代码 - 编译器会处理3.枚举值是唯一的参考:m.oschina.net/blog/341617
  • @Chris Thorna 应该被标记为正确的,你真的应该看看这个视频知道为什么:youtube.com/watch?v=Hzs6OBcvNQE
【解决方案2】:

您可以使用枚举,或者为了更适合 Android 的做法,您可以使用 IntDef 模式。

【讨论】:

  • 也很有趣,但在这种情况下,恐怕枚举是最好的选择,因为我还将使用 XML。
猜你喜欢
  • 2021-02-19
  • 1970-01-01
  • 2013-03-24
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多