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

                                    作者:尹正杰

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

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

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

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
EMAIL:y1053419035@qq.com
*/
package cn.org.yinzhengjie; import java.util.Arrays; /**
* 定义枚举类型,只需要使用关键字enum关键字即可,内部的每个元素用逗号(",")分隔。
*/
enum Day {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
} public class EnumeratedTypeDemo {
public static void main(String[] args) {
//直接引用
Day day = Day.MONDAY;
System.out.printf("day:[%s]\n",day); /**
* values()方法的作用就是获取枚举类中的所有变量,并作为数组返回
*/
Day day1 = Day.valueOf("WEDNESDAY");
System.out.printf("day1:[%s]\n",day1); /**
* valueOf(String name)方法与Enum类中的valueOf方法的作用类似根据名称获取枚举变量,
* 只不过编译器生成的valueOf方法更简洁些只需传递一个参数。
*/
Day[] days = Day.values();
System.out.printf("days:%s\n",Arrays.toString(days));
//向上转型Enum
Enum element = Day.FRIDAY;
//获取class对象引用
Class<?> clasz = element.getDeclaringClass();
if(clasz.isEnum()) {
Day[] res = (Day[]) clasz.getEnumConstants();
System.out.println("res:"+Arrays.toString(res));
}
}
} /*
以上代码执行结果如下:
day:[MONDAY]
day1:[WEDNESDAY]
days:[MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]
res:[MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]
*/

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

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
EMAIL:y1053419035@qq.com
*/
package cn.org.yinzhengjie /**
* 定义枚举类型需要继承“Enumeration”这个抽象类
*/
object ColorClassification extends Enumeration{
val RED = Value(0,"红色")
val YELLOW = Value(1,"黄色")
val GREEN = Value(2,"绿色")
val PINK = Value(3,"粉色")
val BLUE = Value(4,"蓝色")
val ORANGE = Value(5,"橙色")
val BLACK = Value(6,"黑色")
val WHITE = Value(7,"白色")
} object EnumeratedType {
def main(args: Array[String]): Unit = {
println(ColorClassification.values)
println(ColorClassification.RED)
println(ColorClassification.RED.id)
println(ColorClassification.ORANGE.id)
}
} /*
以上代码执行结果如下:
ColorClassification.ValueSet(红色, 黄色, 绿色, 粉色, 蓝色, 橙色, 黑色, 白色)
红色
0
5
*/

Scala进阶之路-Scala中的枚举用法案例展示的更多相关文章

  1. Scala进阶之路-Scala中的泛型介绍

    Scala进阶之路-Scala中的泛型介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 通俗的讲,比如需要定义一个函数,函数的参数可以接受任意类型.我们不可能一一列举所有的参数类 ...

  2. Scala进阶之路-Scala中的高级类型

    Scala进阶之路-Scala中的高级类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.类型(Type)与类(Class)的区别 在Java里,一直到jdk1.5之前,我们说 ...

  3. Scala进阶之路-Scala中的Ordered--Ordering

    Scala进阶之路-Scala中的Ordered--Ordering 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   说道对象的比较,在Java中大家最熟悉不过的就是实现类本身实 ...

  4. Scala进阶之路-Scala高级语法之隐式(implicit)详解

    Scala进阶之路-Scala高级语法之隐式(implicit)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们调用别人的框架,发现少了一些方法,需要添加,但是让别人为你一 ...

  5. Scala进阶之路-Scala特征类与unapply反向抽取

    Scala进阶之路-Scala特征类与unapply反向抽取 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala特征类分析 1>.Unit 答:用于定义返回值类型, ...

  6. Scala进阶之路-Scala函数篇详解

    Scala进阶之路-Scala函数篇详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传值调用和传名调用 /* @author :yinzhengjie Blog:http: ...

  7. Scala进阶之路-Scala的基本语法

    Scala进阶之路-Scala的基本语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数式编程初体验Spark-Shell之WordCount var arr=Array( ...

  8. Scala进阶之路-反射(reflect)技术详解

    Scala进阶之路-反射(reflect)技术详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala中的反射技术和Java反射用法类似,我这里就不一一介绍反射是啥了,如果对 ...

  9. Scala进阶之路-正则表达式案例

    Scala进阶之路-正则表达式案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 废话不多说,正则大家都很清楚,那在Scala如何使用正则了?我们直接上个案例,如下: /* @au ...

随机推荐

  1. 第三个Sprint冲刺第五天(燃尽图)

  2. 对TCP重传的进一步认识

    http://blog.sina.com.cn/s/blog_4d276ac901011ee7.html ——TCM项目所得 一.看图说话 1.基于套接字的TCP服务器/客户端程序流程 2.TCP三次 ...

  3. GCP试用到期再申请

    目标 GCP的免费试用到期了.网传可以续用,看了教程,记录下来. 法一 应该可以直接用一个新gmail账号的.这个方法的难点可能在于注册新账号有门槛.我有一个很久以前注册过的,试着找回了密码,登入GC ...

  4. WebPage设计专业术语

    header footer master content placeholder breadcrumb 面包屑(breadcrumb)源于一个童话,在网站中就是一行层级属性链接组成的线性链接标示(我的 ...

  5. Javascript中的闭包和C#中的闭包

    js和C#中都有闭包的概念,闭包本质上是一个对象,是指有权访问另一个局部作用域中的变量的对象(或函数,在C#中是委托).这个对象和函数/方法有关: 在js中,闭包是由于函数引用了局部变量形成的.在C# ...

  6. [CB]2018年中国智能手机市场出货量

    Canalys:2018年中国智能手机市场出货量同比跌逾14% https://www.cnbeta.com/articles/tech/813267.htm 市场调研机构Canalys今日公布中国智 ...

  7. docker 构建dockerfile

    版本为: 使用cenotos 7 docker  版本 [root@zhao ~]# docker --versionDocker version 17.03.1-ce, build c6d412e ...

  8. pandas.Series

    1.系列(Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组.轴标签统称为索引. Pandas系列可以使用以下构造函数创建 - pandas.Series ...

  9. HTMl Dom操作

    訪問: getElementById():帶回指定id的所有元素 getElementByTagName():帶回指定標籤名的所有的元素 getElementByClassName():帶回指定類型名 ...

  10. AJAX--总结

    AJAX 2018-9-6 14:42:53 AJAX简介 ​ HTTP协议------>HTTP权威指南 ​ 请求:客户端去向服务端请求一个文件 ​ 响应:服务端把对应的文件内容返回给客户端, ...