栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我应该严格避免在Android上使用枚举吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我应该严格避免在Android上使用枚举吗?

enum
需要其功能时使用。 不要 严格 避免它

Java枚举功能更强大,但是如果您不需要其功能,可以使用常量,它们会占用较少的空间,并且它们本身可以是原始的。

何时使用枚举:

  • 类型检查-你可以接受 列出的值,而且他们是不连续的(见下面就是我所说的 连续 点击这里)
  • 方法重载-每个枚举常量都有自己的方法实现

    public enum UnitConverter{METERS{    @Override    public double toMiles(final double meters){        return meters * 0.00062137D;    }    @Override    public double toMeters(final double meters){        return meters;    }},MILES{    @Override    public double toMiles(final double miles){        return miles;    }    @Override    public double toMeters(final double miles){        return miles / 0.00062137D;    }};public abstract double toMiles(double unit);public abstract double toMeters(double unit);

    }

  • 更多数据-您的一个常数包含多个不能放在一个变量中的信息

  • 复杂的数据-您不断需要的方法来处理数据

何时 使用枚举:

  • 您可以接受一种类型的所有值,并且您的常数仅包含这些最常用的值
  • 您可以接受连续数据

    public class Month{public static final int JANUARY = 1;public static final int FEBRUARY = 2;public static final int MARCH = 3;...public static String getName(final int month){    if(month <= 0 || month > 12){        throw new IllegalArgumentException("Invalid month number: " + month);    }    ...}

    }

  • 用于名称(例如您的示例)

  • 对于真的不需要枚举的其他所有内容

枚举占用更多空间

  • 枚举常量的单个引用占用 4个字节
  • 每个枚举常量占用的空间是 其字段大小总和, 对齐方式是8字节+ 对象的开销
  • 枚举类本身占用一些空间

常量占用更少的空间

  • 常量没有引用,因此它是纯数据(即使是引用,枚举实例也将是对另一个引用的引用)
  • 常量可以添加到现有类中-不必添加其他类
  • 常量可以内联;它带来了扩展的编译时功能(例如,空检查,查找无效代码等)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/495597.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号