博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scala进阶之路-Scala中的枚举用法案例展示
阅读量:5931 次
发布时间:2019-06-19

本文共 2683 字,大约阅读时间需要 8 分钟。

            Scala进阶之路-Scala中的枚举用法案例展示

                                    作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

  Scala中的枚举值和Java中的枚举值有点差别,不过使用起来也都差大同小异,我这里分别写了一个Java定义枚举类型和Scala定义枚举类型的案例。

 

 

一.Java中定义枚举类型案例展示

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/ 4 EMAIL:y1053419035@qq.com 5 */ 6 package cn.org.yinzhengjie; 7  8 import java.util.Arrays; 9 10 /**11  * 定义枚举类型,只需要使用关键字enum关键字即可,内部的每个元素用逗号(",")分隔。12  */13 enum Day {14     MONDAY,15     TUESDAY,16     WEDNESDAY,17     THURSDAY,18     FRIDAY,19     SATURDAY,20     SUNDAY21 }22 23 24 public class EnumeratedTypeDemo {25     public static void main(String[] args) {26         //直接引用27         Day day = Day.MONDAY;28         System.out.printf("day:[%s]\n",day);29 30         /**31          * values()方法的作用就是获取枚举类中的所有变量,并作为数组返回32          */33         Day day1 = Day.valueOf("WEDNESDAY");34         System.out.printf("day1:[%s]\n",day1);35 36         /**37          *      valueOf(String name)方法与Enum类中的valueOf方法的作用类似根据名称获取枚举变量,38          * 只不过编译器生成的valueOf方法更简洁些只需传递一个参数。39          */40         Day[] days = Day.values();41         System.out.printf("days:%s\n",Arrays.toString(days));42         //向上转型Enum43         Enum element = Day.FRIDAY;44         //获取class对象引用45         Class
clasz = element.getDeclaringClass();46 if(clasz.isEnum()) {47 Day[] res = (Day[]) clasz.getEnumConstants();48 System.out.println("res:"+Arrays.toString(res));49 }50 }51 }52 53 54 55 56 57 /*58 以上代码执行结果如下:59 day:[MONDAY]60 day1:[WEDNESDAY]61 days:[MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]62 res:[MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]63 */

 

二.Scala中定义枚举类型案例展示

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/ 4 EMAIL:y1053419035@qq.com 5 */ 6 package cn.org.yinzhengjie 7  8 /** 9   * 定义枚举类型需要继承“Enumeration”这个抽象类10   */11 object ColorClassification extends Enumeration{12     val RED = Value(0,"红色")13     val YELLOW = Value(1,"黄色")14     val GREEN = Value(2,"绿色")15     val PINK = Value(3,"粉色")16     val BLUE = Value(4,"蓝色")17     val ORANGE = Value(5,"橙色")18     val BLACK = Value(6,"黑色")19     val WHITE = Value(7,"白色")20 }21 22 object EnumeratedType {23     def main(args: Array[String]): Unit = {24         println(ColorClassification.values)25         println(ColorClassification.RED)26         println(ColorClassification.RED.id)27         println(ColorClassification.ORANGE.id)28     }29 }30 31 32 33 34 /*35 以上代码执行结果如下:36 ColorClassification.ValueSet(红色, 黄色, 绿色, 粉色, 蓝色, 橙色, 黑色, 白色)37 红色38 039 540  */

 

你可能感兴趣的文章
iTunesU无法上传,决定放弃
查看>>
浅谈双活和多路径【转自冬瓜哥】
查看>>
全球五大顶级域名一周统计:9月第一周新增近9679个
查看>>
Eclipse下svn的创建分支/合并/切换使用
查看>>
6月上旬中国域名服务商Top21:万网夺冠 优势增大
查看>>
全球域名商解析新增保有量12强:西部数码晋身三甲
查看>>
SaltStack状态管理
查看>>
Nginx+Weblogic集群及session共享复制(生产案例)
查看>>
如何提高阿里云上应用的可用性
查看>>
对话亲历者|鲁肃:我在支付宝“拧螺丝“的日子
查看>>
MySql存储过程:查询数据库里每个表的最大id值
查看>>
文件查找命令及find命令
查看>>
Linux:生产者与消费者模式
查看>>
行为参数化与lambda表达式 - 读《Java 8实战》
查看>>
824. Goat Latin - LeetCode
查看>>
Java并发同步工具类之CountDownLatch
查看>>
SpringBoot使用yaml作为配置文件之坑
查看>>
WebScoket支持safari+chrome+firefox的规范和协议
查看>>
php的setcookie函数出现Warning: Warning: Cannot modify h
查看>>
SpringBoot MongoDB 实现事物处理 (windows环境下的副本集创建)
查看>>