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


                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     SUNDAY
    21 }
    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]
    ",day);
    29 
    30         /**
    31          * values()方法的作用就是获取枚举类中的所有变量,并作为数组返回
    32          */
    33         Day day1 = Day.valueOf("WEDNESDAY");
    34         System.out.printf("day1:[%s]
    ",day1);
    35 
    36         /**
    37          *      valueOf(String name)方法与Enum类中的valueOf方法的作用类似根据名称获取枚举变量,
    38          * 只不过编译器生成的valueOf方法更简洁些只需传递一个参数。
    39          */
    40         Day[] days = Day.values();
    41         System.out.printf("days:%s
    ",Arrays.toString(days));
    42         //向上转型Enum
    43         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 0
    39 5
    40  */
  • 相关阅读:
    是用VLC API将RTSP流convert为视频文件
    VLC命令行的应用
    OpenRTSP的使用
    (3两个例子)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
    寻找轮廓的中点
    (4程序框架)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
    (2环境架设)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
    (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
    初步实现GoQtTemplate
    特征提取算法的综合实验(多种角度比较sift/surf/brisk/orb/akze)
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/9404768.html
Copyright © 2020-2023  润新知