Scala进阶之路-Scala中的枚举用法案例展示
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中的枚举用法案例展示的更多相关文章
- Scala进阶之路-Scala中的泛型介绍
Scala进阶之路-Scala中的泛型介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 通俗的讲,比如需要定义一个函数,函数的参数可以接受任意类型.我们不可能一一列举所有的参数类 ...
- Scala进阶之路-Scala中的高级类型
Scala进阶之路-Scala中的高级类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.类型(Type)与类(Class)的区别 在Java里,一直到jdk1.5之前,我们说 ...
- Scala进阶之路-Scala中的Ordered--Ordering
Scala进阶之路-Scala中的Ordered--Ordering 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 说道对象的比较,在Java中大家最熟悉不过的就是实现类本身实 ...
- Scala进阶之路-Scala高级语法之隐式(implicit)详解
Scala进阶之路-Scala高级语法之隐式(implicit)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们调用别人的框架,发现少了一些方法,需要添加,但是让别人为你一 ...
- Scala进阶之路-Scala特征类与unapply反向抽取
Scala进阶之路-Scala特征类与unapply反向抽取 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala特征类分析 1>.Unit 答:用于定义返回值类型, ...
- Scala进阶之路-Scala函数篇详解
Scala进阶之路-Scala函数篇详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传值调用和传名调用 /* @author :yinzhengjie Blog:http: ...
- Scala进阶之路-Scala的基本语法
Scala进阶之路-Scala的基本语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数式编程初体验Spark-Shell之WordCount var arr=Array( ...
- Scala进阶之路-反射(reflect)技术详解
Scala进阶之路-反射(reflect)技术详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala中的反射技术和Java反射用法类似,我这里就不一一介绍反射是啥了,如果对 ...
- Scala进阶之路-正则表达式案例
Scala进阶之路-正则表达式案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 废话不多说,正则大家都很清楚,那在Scala如何使用正则了?我们直接上个案例,如下: /* @au ...
随机推荐
- 实验1--用C语言编程四则运算
#include<stdio.h>#include<stdlib.h>#include <time.h>#define N 30main(){int a,b,k,i ...
- Java日志输出问题
以前有一个同事,说自己的Java控制台程序,输出的信息,打印信息以及错误信息,在windows的command line刷屏,想复制下来,想要自输出到日志文件里. 自己写文件太麻烦,他从网上只找到用重 ...
- [转帖] linux下面 vim 数字键无法插入的解决办法
感谢原作者: https://blog.csdn.net/guoyuqi0554/article/details/11477597 这个问题困扰自己好久了.. 刚才解决了 rlwrap的问题 这会儿 ...
- ubuntu ftp服务
apt-get install vsftpd apt-get update vi /etc/apt/sources.list vim /etc/vsftpd.conf service vsftpd ...
- WINFORM 多条件动态查询 通用代码的设计与实现
经常碰到多条件联合查询的问题,以前的习惯认为很简单总会从头开始设计布局代码,往往一个查询面要费上老半天的功夫,而效果也不咋地. 前段时间做了个相对通用的多条件动态查询面,复用起来还是挺方便的, ...
- html5 简介
html5基于html.html dom.xhtml的新版本. 为html5建立的一些新规则: 基于html.dom.xhtml和javascript: 减少对外部插件的需求,比如flash: 更多取 ...
- Bootstrap学习目录
前面的话 Bootstrap与CSS的关系,类似于javascript与jQuery的关系,原理与应用的关系.只是jQuery不再火爆,而Bootstrap依然火热,它在github有着超过100万的 ...
- 近端梯度算法(Proximal Gradient Descent)
L1正则化是一种常用的获取稀疏解的手段,同时L1范数也是L0范数的松弛范数.求解L1正则化问题最常用的手段就是通过加速近端梯度算法来实现的. 考虑一个这样的问题: minx f(x)+λg(x) x ...
- BZOJ1163&BZOJ1339[Baltic2008]Mafia——最小割
题目描述 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警 方希望使用最小的代价控制一些车站,使得去掉这些车站后,匪徒无法从原定的初始点到达目标 ...
- Android8.0运行时权限策略变化和适配方案
版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.comAndroid8.0也就是Android O即将要发布了,有很多新特性,目前我们可以通过AndroidS ...