Java基础(6)-枚举

能解决
1.类或方法强制使用者传入预设的值
2.性能相对常量更好 - (Android环境除外)

创新互联服务项目包括敖汉网站建设、敖汉网站制作、敖汉网页制作以及敖汉网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,敖汉网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到敖汉省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

使用办法
public enum ColorEnum{
WHITE("0x000001"),BLACK("0x000002"),GREEN("0x000003");
private final String color;
private ColorEnum(String color){
this.color = color;
}

public String getColor() {
    return color;
}

 public void setColor(String color) {
 this.color = color;
}

}

和类的区别
枚举是真正的 final,客户端不允许创建枚举类的实例,也不能对其进行拓展
public class Color {
public static final Color WHITE = new Color(),
BLACK = new Color(),
GREEN = new Color();
private Color() { }
}

和常量的区别
1) 无法限制开发员继承/实现接口. (枚举是final的构造方法是私有的)
2) 常量作为参数时,是String,int等弱类型,开发员传入没有在常量接口里定义的值,这个问题无法通过编译器发现.
(常量无法 限制开发人员传入的参数数值,而枚举可以在编译阶段强制要求开发人员传入规定数值)
3) 由于开发员可以直接写常量值, 所以不能用==对比,只能用equals对比,不能优化性能
(枚举 equals 也会转化为 == 可参考 https://www.cnblogs.com/xiohao/p/7405423.html )
4) 编译时,是直接把常量的值编译到类的二进制代码里,常量的值在升级中变化后,需要重新编译所有引用常量的类,因为里面存的是旧值. (常量是装载的时候放入堆里,如果发生变化,需要重新编译装载)

参考:
https://www.cnblogs.com/kailejun/p/6624471.html
https://blog.csdn.net/lishuangling21/article/details/71398925
https://blog.csdn.net/hzy38324/article/details/72566678
Android中枚举情况:
https://www.cnblogs.com/zgz345/p/5871351.html
Android中枚举替代方案
https://www.jianshu.com/p/f8ac84a3e3c1

网页题目:Java基础(6)-枚举
本文来源:https://www.cdcxhl.com/article12/ijpcdc.html

成都网站建设公司_创新互联,为您提供企业网站制作云服务器网页设计公司网站维护网站收录做网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站