(转载)java 枚举 循环遍历以及一些简单常见的使用
本文转载自:http://blog.csdn.net/qq_27093465/article/details/51706076 作者:李学凯
什么时候想用枚举类型:
有时候,在设计一个java model对象的时候,你需要一些具体的常量字符串之类的东西,这个东西又没必要跟整个项目的全局常量放在一起,就放在model的java文件里面是最合适的,那么,你可以有两种选择:
1,在java model文件里面,定义public final static XXXX = "" ;
这种就是全局静态变量,通过类名就可以直接访问。
2,还是在java model 文件里面,定义个枚举类型 public enum XXXX{a,b,c,d,e,f};
什么时候,如何使用:
当在和前台传过来的数据或者在逻辑操作的代码里面需要去用到这个常量值去做比较的时候,就是使用枚举类型的时候。
一般形式是: 类名.枚举类型名.单个枚举类型
用上面的例子(假设在一个叫A的model java文件里面),
则为A.XXXX.a.toString();
就可以这么使用了。
为什么要这么设计常量:
这里有个代码的书写原则,这东西一般是没人,而且书里面也是没人跟你说的,都是代码看多了,或者,在你犯错误的时候才知道的问题。
就是在自己的代码里面,要是想使代码很规范,不被吊打,
那么写出来的逻辑代码里面是不应该出现常量字符串和常量数字之类的东西。
例如代码里面出现数字:100,8,
或者其他的数字,
字符串如:只要是在逻辑代码里面带引号的。
这些代码,你写出来虽然在功能上是没有问题的,但是,这些都是隐藏的炸弹。
好的代码,是不会出现这个问题的。这些东西都应该被定义成一个常量,然后再在其他地方使用。
类似c语言里面的宏定义的感觉。
不然在很久之后,忽然有些地方的值换了,只需要修改一处地方,整个项目都不用担心会出问题,
但是,如果你没有这么干,那么,没人知道你在逻辑代码里面还有这样的常量存在。
那么代码就会出现美妙的后果。
然后就炸了。
怎么循环一个枚举类型。
枚举有一个方法,values(),
使用形式如: int length = XXXX.values().length
返回的是一个类型与枚举类型一致的数组。
然后就可以循环这个数组。
就是循环枚举类型了。
public enum EnumTest {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
//循环输出 值
for (EnumTest e : EnumTest.values()) {
System.out.println(e.toString());
}
.ordinal()方法。
这个方法就是从枚举类型的第一个枚举开始,依次从零开始往上递增。
上面的例子中a,b,c,d,e,f,依次对应 为数字 ,0,1,2,3,4,5
形式:A.XXXX.a.ordinal();
这么个方式调用。
创建枚举类型要使用 enum 关键字,
隐含了所创建的类型都是
java.lang.Enum
类的子类(java.lang.Enum 是一个抽象类)
其中的方法和属性如下图:
enum 对象的常用方法介绍
int compareTo(E o)
比较此枚举与指定对象的顺序。
Class<E> getDeclaringClass()
返回与此枚举常量的枚举类型相对应的 Class 对象。
String name()
返回此枚举常量的名称,在其枚举声明中对其进行声明。
int ordinal()
返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
String toString()
返回枚举常量的名称,它包含在声明中。
static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
返回带指定名称的指定枚举类型的枚举常量。
(转载)java 枚举 循环遍历以及一些简单常见的使用的更多相关文章
- JAVA中循环遍历list有三种方式
转自:https://blog.csdn.net/changjizhi1212/article/details/81036509JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常 ...
- Java 枚举(enum) 详解7种常见的用法
Java 枚举(enum) 详解7种常见的用法 来源 https://blog.csdn.net/qq_27093465/article/details/52180865 JDK1.5引入了新的类型— ...
- 转载 java枚举类型enum的使用 (原文地址:http://blog.csdn.net/wgw335363240/article/details/6359614)
java枚举类型enum的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static 类型来定义呢?以前我们都是采 ...
- java中循环遍历实体类的属性和数据类型以及属性值
package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTarg ...
- java 各种循环遍历
遍历方式选择: 实现了 RandomAccess 接口的 list,优先选择普通 for 循环 ,其次 foreach: 未实现 RandomAccess 接口的 list, 优先选择 iterato ...
- Java 枚举(enum) 详解4种常见的用法
JDK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. 大师兄我又加上自己的理解,来帮助各位理解一下. 用法一:常量 在JDK1.5 之前,我们定义常 ...
- Java中循环删除list中元素的方法总结
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后在今天使用的时候发现报错了,然后去科普了一下,发现这是一个误区.下面我们来一起看一下. Java中循环遍 ...
- JAVA中循环删除list中元素的方法总结【转】
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末 ...
- JAVA中循环删除list中元素
文章来源: https://www.cnblogs.com/pcheng/p/5336903.html JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常说的foreach循环) ...
随机推荐
- win10 UWP 蜘蛛网效果
我看见了知乎首页登录背景和普通的地球人写的博客,发现了个好看的效果. 那么我来告诉大家如何做这个效果. 第一步是在 Canvas 画点,第二步是让点移动,第三步是画线 在 Canvas 画一个点 我们 ...
- (10.20)Java小作业!
今天想要和大家分享一道我最近遇到的题,里面既包括了嵌套循环的运用,还有函数的定义与调用,我个人觉得挺有价值的. 打印一个由*号构成的等腰三角形: 具体的解题方法如下: public class get ...
- PHP连接mysql数据库进行增删改查--删除
删除: 1.首页 在foreach里面加入 <td><a href='dele.php?id={$i[0]}'>删除</a></td> 在上面< ...
- Nginx防盗链的3种方法
一:一般的防盗链如下: location ~* \.(gif|jpg|png|swf|flv)$ { valid_referers none blocked www.jzxue.com jzxue.c ...
- EL&&JSTL
一.JSP技术 1.jsp脚本和注释 jsp脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 2)<%=java变量或表达式> - ...
- C 实现可变参数
C中可以借助va_list实现可变参数: va_start:使用传入的可变参数的第一个变量初始化va_list va_arg:获取当前可变参数,每次调用时会将指针向后移 va_end:结束 利用这个机 ...
- LINUX 笔记-DU 和 DF
du(disk usage)搜索文件统计文件大小 1.显示指定文件所占空间 du file1 file2 2.显示指定目录占的空间 du dir 3.只显示总和大小 du -s 4.以方便格式显示 d ...
- LeetCode 1. Two Sum (两数之和)
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- java自动化-juint框架简述
本人使用的是java的juint框架来组织的自动化测试,故我这边需要简单介绍一下juint框架 首先,建议自行百度一下juint框架,先有一个大概的了解 所谓的接口自动化测试,会对多个接口中每一个接口 ...
- Javascript中的Trait与代码重用
Javascript中的Trait与代码重用 来源 http://www.ituring.com.cn/article/64103 我们知道,OOP中最普遍的代码重用方式是通过继承,但是,继承有一些缺 ...