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 ...
随机推荐
- 20145221 《Java程序设计》实验报告四:Android开发基础
20145221 <Java程序设计>实验报告四:Android开发基础 实验要求 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管 ...
- Zookeeper 3.4.8分布式安装
1.机器信息 五台centos 64位机器 2.集群规划 Server Name Hadoop Cluster Zookeeper Ensemble HBase Cluster Hadoop01 ...
- NumsCount (java)
package com.home.test; import java.util.Arrays; public class NumsCount { public vo ...
- Leetcode——258.各位相加【水题】
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2. 由于 2 是一位数,所 ...
- Sonatype Nexus 2.11.1-01 使用入门
nexus安装与启动 linux下: 安装路径 /home/maven/nexus-2.11.1-01/ 启动方法 ./bin/nexus start windows下: 管理员模式运行cmd.exe ...
- Netty4ClientHttpRequest代码赏析
private static int getPort(URI uri) { int port = uri.getPort(); if (port == -1) { if ("http&quo ...
- [转载] 虚拟机下面安装windows+oracle ASM的过程
转帖:https://www.2cto.com/database/201303/195261.html 最开始的时候 我找了一个挺好的教程 安装过 但是已经找不到了,先转载一下这个内容,后续再测试完善 ...
- 转《js闭包与内存泄漏》
首先,能导致内存泄漏的一定是引用类型的变量,比如函数和其他自定义对象.而值类型的变量是不存在内存泄漏的,比如字符串.数字.布尔值等.因为值类型是靠复制来传递的,而引用类型是靠类似c语言中的指针来传递的 ...
- 如何使用git在github上开发的时候和别人在别人仓库上进行协作编程,最后再统一提交
因为总是忘记,所以记录一下. 这里首先需要添加你需要操作对象的仓库到你的远程仓库并给个名字,才能进行操作.这里我用我同事的邮箱做比喻.(如果对方为私有仓库,你必须要有同样的权限) 使用命令 git r ...
- HTTP消息头(HTTP headers)-常用的HTTP请求头与响应头
HTTP消息头是指,在超文本传输协议( Hypertext Transfer Protocol ,HTTP)的请求和响应消息中,协议头部分的那些组件.HTTP消息头用来准确描述正在获取的资源.服务器或 ...