Android中这种情况下是否应该使用枚举

发布于 2022-09-01 07:35:46 字数 668 浏览 22 评论 0

问题背景:
我们假设这样一种需求,需要在程序运行中,根据不同的网络请求错误显示不同的错误码(errorCode),有的时候还要把错误信息(errorMsg)记入日志。那么认为errorCode和errorMsg存在一对一的映射,所以自然想到利用一个枚举类型表示:
public class enum{

    A("1001","errorMsg1"),
    B("1002","errorMsg2"),
    C("1003","errorMsg3"),
    D("1004","errorMsg4"),
    ...;

    //属性声明(都是字符串)
    public String errorCode;
    public String errorMsg;

    //构造方法略
}

我的问题:
枚举的开销是比较大的,现在程序需要最大限度节省手机内存还要保证代码的优雅。
但是我并不知道对于String保存类型的数据,用不用枚举的差别是否很大?(我的枚举大约会有20项)。
如果真的要避免使用枚举,那么如何在保证代码优雅的基础上实现这种需求(期望程序员只需要在某种错误情况下把代表错误的枚举变量保存起来,而不需要关心内部errorCode和errorMsg的映射关系)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吃→可爱长大的 2022-09-08 07:35:46

我的枚举大约会有20项

在这样的数量级下讨论性能我觉得意义不大.


我觉得一个 HashMap 或者 SparseArray 就可以了
比如可以用一个xml或者配置文件保存,App启动时读取到内存中

枚举的开销是比较大的

为何你觉得枚举的开销比较大?
一般说枚举开销大是和基本数据类型相比.

你如果只需要一个errorMsg 那String会比较小
如果你同时需要 errorCode 和 errorMsg ,那应当没有更小的方案了.

む无字情书 2022-09-08 07:35:46

建议看看的Java 枚举的基本使用.
public enum Type {
public Object create {
...
....
}

你还可以以枚举的类型返回字符串或者其它东西... ...
可以上网查查java 枚举的使用.. ..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文