java技术系列(一) Enum
Enum的本质是类,继承自Enum类。
enum直接使用==进行比较就可以。
类型的静态values方法,返回左右的枚举实例。
ordinal方法返回enum声明中枚举常亮的位置。
enum可以继承接口。api可以面向枚举的接口进行编程,这样这个接口可以接受任何接收实现该接口的枚举。
适用场景:在实际编程中,存在稳定的有限数据集,如周一到周日,四季名称,男女性别等。适用于枚举。
可以在switch中使用。
1 package testjava;
2
3 import com.alibaba.fastjson.JSON;
4
5 /**
6 * Create with test01
7 * Auther: hp.wang on 2017/9/19
8 * DateTime: 2017/9/19 20:16
9 */
10 public class testEnum {
11
12 //常用定义Enum方法
13 public enum Role {
14 ADMIN(1), GUIDER(2), ROBOT(3),USER(4); //顺序很重要
15
16 private int value;
17
18 Role(int v) {
19 this.value = v;
20 }
21
22 public int getValue() {
23 return value;
24 }
25
26 public static Role getByValue(int v) {
27 for (Role r : Role.values()) {
28 if (r.getValue() == v) {
29 return r;
30 }
31 }
32 throw new IllegalArgumentException(v + " is not found in this enum.");
33 }
34 }
35
36 public static void main(String[] args) {
37 //使用方法:
38 Role role = Role.ADMIN;
39 System.out.println(role.toString() + ":" + role.getValue());
40 System.out.println(Role.getByValue(2).toString());
41 System.out.println("json:"+ JSON.toJSONString(role));
42
43 Role role1=JSON.parseObject("\"ADMIN\"",Role.class);
44 Role role2=JSON.parseObject("\"USER\"",Role.class);
45
46 System.out.println("end");
47 }
48 }
java技术系列(一) Enum的更多相关文章
- 【Java技术系列】爱情36技之暗送秋波的技术
1. 这篇文章想分享已经很久了,苦于皱巴巴的技术比较生涩难懂,迟迟没有找到好的分享方式,今天结合爱情中暗送秋波的故事的形式,尝试分享一下. 以后如果再有人问你们:能否在加载类的时候,对字节码进行修改? ...
- 【Java技术系列】爱情36技之追美妹的技术
1. 在古老的非洲大陆上,有个原始人无意中抬头仰望星空,凝视的时间稍微长了一些,超过了外星人设置的阈值,立刻拉响了人类即将产生文明的警报.因为外星人认为,人类已经产生了对宇宙的好奇心,文明的产生,科技 ...
- 【Java技术系列】爱情36技之记忆永存
1. 关注“一猿小讲”的伙伴们都清楚,Java 那小子带着心爱的 Python 菇凉,去了一趟浪漫的土耳其,然后一起又去了东京和巴黎,接着 Python 菇凉自己又去了云南的大理. 就在昨天,Pyt ...
- 【Java技术系列】爱情36技之Bug大战
1. 鲁迅先生说:程序员,天不怕地不怕,就怕小虫儿爬呀爬,爬呀爬. 随着时间的推移,鲁迅先生又说:真正勇猛的程序员,敢于让虫子面对惨淡的虫生. 虫子在程序员心中是啥东西?虫子的学名为 Bug,是多少入 ...
- 顽石系列:Java技术面试
顽石系列:Java技术面试 JDBC相关 1.Statement与PreparedStatement的区 别,什什么是SQL注⼊入,如何防⽌止SQL注⼊? PreparedStatement支持动态设 ...
- Java 加解密技术系列文章
Java 加解密技术系列之 总结 Java 加解密技术系列之 DH Java 加解密技术系列之 RSA Java 加解密技术系列之 PBE Java 加解密技术系列之 AES Java 加解密技术系列 ...
- Tomcat系列之Java技术详解
一.概述 1.前言 在前面几篇博客中,我们和大家说了负载均衡器服务器.Web服务器.反向代理服务器.缓存服务器,从这篇博客开始我们和大家说说应用程序服务器,对于上述内容不了解的博友可以去参考一下我们前 ...
- 11.Java 加解密技术系列之 总结
Java 加解密技术系列之 总结 序 背景 分类 常用算法 原理 关于代码 结束语 序 上一篇文章中简单的介绍了第二种非对称加密算法 — — DH,这种算法也经常被叫做密钥交换协议,它主要是针对密钥的 ...
- 10.Java 加解密技术系列之 DH
Java 加解密技术系列之 DH 序 概念 原理 代码实现 结果 结束语 序 上一篇文章中简单的介绍了一种非对称加密算法 — — RSA,今天这篇文章,继续介绍另一种非对称加密算法 — — DH.当然 ...
- 9.Java 加解密技术系列之 RSA
Java 加解密技术系列之 RSA 序 概念 工作流程 RSA 代码实现 加解密结果 结束语 序 距 离上一次写博客感觉已经很长时间了,先吐槽一下,这个月以来,公司一直在加班,又是发版.上线,又是新项 ...
随机推荐
- 项目day1 -- vscode远程连接云服务器
刚学完go的语法,本来想着找个小项目试试手,发现大佬们都是vscode ssh到云服务器上做开发的.正好看到阿里云的学生认证后可以白嫖,就先嫖了个试试手 跟着各大教程简单配置了一下阿里云,安装vsco ...
- SOJ1728 题解
题意 有一个长度为 \(n\) 的数列 \(a_0,a_1,\dots,a_{n-1}\) 以及一个长度为 \(m\) 的操作序列 \((b_0,c_0),(b_1,c_1)\dots(b_{m-1} ...
- 自己使用Git规范流程-记录
配置目录 建立仓库 1.点击"New project" 2.点击"Create blank project" 3.输入仓库名称,点击创建 4.仓库创建完成,个人 ...
- Vue中qrcode的使用方法(生成二维码插件) / 前端页面根据URL链接生成二维码
1.下载 npm install qrcode --save-dev 2.引入(在所需要的页面中引入) import QRCode from "qrcode"; //引入生成二维码 ...
- CISCO--配置单臂路由+DHCP
CISCO--配置单臂路由+DHCP 1.在交换机中创建vlan10和20. Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 2.接口Fa0/1配 ...
- 关于head中代码被挤到body中的问题
可能是使用php引用文件时出现了问题,文件格式不是utf-8,将其放在head后面就好
- 问题:为啥explain 后type=all
最近在学习mysql 调优,学习explain执行计划,为了模拟出type=system或const,我创建了一张表test(id,name),id为主键,里面放了一条数据 执行 EXPLAIN SE ...
- Flink Table API & SQL 自定义Redis Sink 代码实现
在自定义source&sink这一块官方给的说明并不是很多,需要去看源代码熟悉,自己实现一个redis sink主要需要实现StreamTableSinkFactory,RichSinkFun ...
- RBAC(DAC)模型
基于角色的访问控制模型 ⟨ , ,,, , , ,, ,⟩ U:用户集 S:会话集 O:资源集 Op:操作集 R:角色集 PERMS:OxOp:权限集 RH:RXR(是 的偏序,表示角色的层次结构,其 ...
- OS-lab6
OS-lab6 管道 在lab5的时候我们实现了文件类设备的读写操作,而在fd.c中,我们定义了3种设备:文件类设备.管道.终端,其中终端已经被完成了,剩下的就是管道了. 管道是一种父子进程间通信的设 ...