JAVA的枚举类型是我见过迄今为止最为强大的枚举类型,说一个实际的吧,我们代码中用到的。

我先说一下使用场景,在订单列表中,订单状态有:

未付款,已付款,已发货,已收货,已退货,已取消等等这些状态,这些状态在界面上展示的颜色都不一样,所以这里用到了枚举来处理,代码大致如下://第一步,先定义大致的枚举结构。

enum OrderStatus{

UNPAID,

PAID,

SENDED,

RECEIVED,

REFUNDED,

CANCALED

}

那么我们怎么在这个基础上扩展这个枚举让他具有颜色这个属性呢?加一个抽象方法。public abstract int getStateColor();

在哪里加呢?我们看完整代码,稍后解释:enum OrderStatus{

UNPAID{

@Override

public int getStateColor() {

return Color.parseColor("#111111");

}

},

PAID{

@Override

public int getStateColor() {

return Color.parseColor("#222222");

}

},

SENDED{

@Override

public int getStateColor() {

return Color.parseColor("#333333");

}

},

RECEIVED{

@Override

public int getStateColor() {

return Color.parseColor("#444444");

}

},

REFUNDED{

@Override

public int getStateColor() {

return Color.parseColor("#555555");

}

},

CANCALED{

@Override

public int getStateColor() {

return Color.parseColor("#666666");

}

};

//加了这个抽象方法之后,编辑器会提醒你,其他枚举没有实现这个枚举,那我们在上面依次实现一下

//见以上代码

public abstract int getStateColor();

}

其中的颜色为了区别,随便写的。代码可能有点长,但是只要你在枚举里边加了抽象方法,那么所有此类型的枚举都得实现这个抽象方法,来看看使用。OrderStatus state = OrderStatus.UNPAID;

//此时,使用此状态的颜色就很简单了

//其他地方可这么使用:state.getStateColor();

枚举类型还可以有构造函数,这个留给你学习。你会了吗?

java枚举什么时候用_什么时候会用到枚举那,这个怎么掌握?相关推荐

  1. python枚举类的意义_用于ORM目的的python枚举类

    编辑问题 我正在尝试创建一个类工厂,它可以生成具有以下属性的枚举类: >从列表中初始化类 允许值(即,它) 自动生成!). > Class创建自己的一个实例 对于每个允许的值. >类 ...

  2. c枚举类型enum例题_一篇文章让你详细了解Java中Enum枚举类的使用

    文章前记 程序员工作久了便可能整日忙碌于"增删改查"中,迷失方向,毫无进步. 该公众号致力于分享软件开发相关的原创干货,助你完成从程序员到架构师的进阶之路! 努力!做一个NB的Co ...

  3. ios 获取一个枚举的所有值_凯哥带你从零学大数据系列之Java篇---第十一章:枚举...

    温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣. 系列文章第一篇是拥抱大数据:凯哥带你 ...

  4. java 枚举可以循环吗_(转载)java 枚举 循环遍历以及一些简单常见的使用

    本文转载自:http://blog.csdn.net/qq_27093465/article/details/51706076 作者:李学凯 什么时候想用枚举类型: 有时候,在设计一个java mod ...

  5. java的枚举类型是什么_什么是枚举(java枚举类型enum用法)

    最佳回答 枚举 1.枚举 (enumeration) 值类型的一种特殊形式,它从 System.Enum 继承,并为基础基元类型的值提供备用名称.枚举类型有名称.基础类型和一组字段.基础类型. &qu ...

  6. java枚举类型enum用法_深入理解java枚举类型enum用法

    enum 的全称为 enumeraTIon, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结. 原始的接口定义常量 publi ...

  7. java手机界面太小_手机端页面在项目中遇到的一些问题及解决办法

    原标题:手机端页面在项目中遇到的一些问题及解决办法 来源:键盘上的眼泪 segmentfault.com/a/1190000015178877 1.解决页面使用overflow: scroll在iOS ...

  8. java map取第一个元素_Java Set接口 Map 与枚举

    Set接口 概述 一个不包含重复元素的 collection.更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素 特点 Set接口是 ...

  9. java entries_Enumerationlt;? extends ZipEntrygt; entries()_学习Java Zip|WIKI教程

    Enumeration extends ZipEntry> entries() 描述 (Description) java.util.zip.ZipFile.entries()方法返回ZIP文件 ...

最新文章

  1. 自己开发的Grid组件 针对IOS的
  2. SecureCRT 7 序列号
  3. 扫描路径_SolidWorks沿路径扭转扫描的线缆实例
  4. View(视图)——ListView概述、Adapter分类
  5. Maven仓库搭建(一):一台HTTP服务器即可(Tomcat、Apache或Nginx)
  6. guice 实例_使用Google Guice消除实例之间的歧义
  7. entity framework框架生成摘要文档为空(没有元数据文档可用)的bug解决方案
  8. mysql 远程登陆设置_MYSQL远程登录权限设置
  9. DOS命令追加符的使用
  10. 香蕉树上第四根芭蕉——c++中容器的概念说明---转载记录
  11. linux非连续内存,linux高端内存管理之非连续内存区(分配和释放)
  12. EMV(一):初步了解EMV和EMV的分层结构
  13. filter java exclude_Filter中排除对指定URL的过滤
  14. 2022年武汉经开区首次进入规模以上工业企业奖励资金申报条件时间及资料
  15. java通过aspose实现文档间格式转换
  16. 万字详解5G车联网技术
  17. 编译安装mysql5.5
  18. 素数(质数)的概念及如何判断素数
  19. lg显示器工厂模式怎么进入_aoc显示器如何进入工程模式
  20. md文件转html文件

热门文章

  1. 同城跑腿行业前景可观,该如何搭建生活服务平台
  2. js删除字符串中指定字符
  3. NLP中的语言模型及文本特征提取算法
  4. python使用谷歌翻译
  5. docker run和docker start的区别
  6. 小程序源码:最新牛牛盲盒微信小程序源码下载·一元购升级款,全新流量变现程序,带图片完整素材
  7. 寒假Python第三天作业
  8. 手写Hooks核心原理
  9. day3分支和循环作业
  10. java多条件sql查询_SQL 多条件查询