java 枚举可以循环吗_(转载)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());

}

0c0a8ebddd3f32e398f0a227dab4439f.png

.ordinal()方法。

这个方法就是从枚举类型的第一个枚举开始,依次从零开始往上递增。

上面的例子中a,b,c,d,e,f,依次对应 为数字 ,0,1,2,3,4,5

形式:A.XXXX.a.ordinal();

这么个方式调用。

创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)其中的方法和属性如下图:

5348a45a20fa6630ed7101e8cd16a7d5.png

enum 对象的常用方法介绍int compareTo(E o) 比较此枚举与指定对象的顺序。Class getDeclaringClass()返回与此枚举常量的枚举类型相对应的 Class 对象。String name() 返回此枚举常量的名称,在其枚举声明中对其进行声明。int ordinal() 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。String toString()返回枚举常量的名称,它包含在声明中。static > T valueOf(Class enumType, String name)返回带指定名称的指定枚举类型的枚举常量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【免费获取】80+页PPT全方位解读半导体行业

来源:新材料在线概要:全方位解读半导体行业

java的构造特点_JAVA学习第八课(构造函数及其特点)

构造函数:构造函数,就是在构建 创造对象 时所调用的函数,作用就是给对象进行初始化特点:1.函数名和类名相同2.不需要定义返回值类型3.没有具体的返回值作用:给对象进行初始化注意:1.默认构造函数的特点2.多…

深度学习处在大爆炸时代的边缘

原作者:Alex Hickey译者:宋榕概要:人工智能(AI)、机器学习和深度学习的早期应用有望在短期和长期内分别取得的创造性和生产性效益。因此多数服务提供商正在逐步加大在深度学习上的投资。据Gartner咨询公司报道&#xf…

AI在行动:改变科学界的人工智能

来源:世界科学概要:社交媒体拥有数以亿计的用户,他们每年发布数以千亿计的微博和帖子,这将社会科学推向了大数据时代。人工智能“知道”星系应该是什么样的,它把一张模糊的图像(左)变成了一张清…

java web js加版本号_[Java教程]js 比较版本号(一)

[Java教程]js 比较版本号(一)0 2016-07-03 15:00:13最近群了有人问如何比较版本号,我好奇的试了一下。比较版本号,怎么办?懒人的方法是借鉴,先查网上的资料,看看有木有直接的帮过来的。而且直接便捷的好像在茫茫"…

麦肯锡全球调研160个案例,发布5个行业34个AI应用场景

来源:全球人工智能概要:“我觉得不行!”;“我觉得可以!”这正是现在大家看待AI的两种态度。“我觉得不行!”;“我觉得可以!”这正是现在大家看待AI的两种态度。有人觉得现在去谈人工…

让计算机拥有一双眼睛,人工智能科学家已经努力了半个世纪

来源:科技行者概要:计算机算法可以从面相判断一个人的性取向,引发了对隐私、道德、伦理问题的争议。然而回过头去看,在人工智能领域,它是图像识别和机器人视觉的核心部分。最近斯坦福大学一篇论文《Deep neural networ…

php点击验证码,用PHP实现验证码功能

作者:hutuworm 来源:糊涂馋寺牐犇壳埃不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉…

业界 | 计算芯片革命来临?英伟达谷歌入局紧逼英特尔

来源:AI科技评论概要:为了能够满足高速增长的计算需求,一些科技巨头们现在正从生物学中寻找灵感。他们正在重新思考电脑的本质,然后建造更像人类大脑的机器:神经系统里要有一个中央脑干,然后把听、说这样的…

php tp框架分页源代码,ThinkPHP3.2框架自带分页功能实现方法示例

本文实例讲述了ThinkPHP3.2框架自带分页功能实现方法。分享给大家供大家参考,具体如下:1.前端-分页代码:{$page}2.创建分页样式:如page.css 并将以下代码复制到该文件中.pages{float: right}.pages a,.pages span {display:inline…

【研究报告】城市云脑,智慧城市2.0产生背后的深层原因,两个重要特征是关键

作者:计算机博士,互联网进化论作者 刘锋到2017年,智慧城市与脑的关键词不断涌现,在互联网云脑的研究基础上,城市云脑形成更为清晰的定义,从2009年智慧地球和智慧城市提出以来,经过8年时间&#…

机器人也需要拥有属于自己的性格

原作者:STEPH HAY, CAPITAL ONE译者:彭婷概要:建立信任最有效的方法之一就是在你的每一次互动中始终如一地展示你的人格的完整性。现实生活中是如此,在AI中也是如此。对话设计师Mindy Gold曾经设计出一款没有明确名称以及性别的健…

IBM Watson 的中国生意

来源:财经杂志概要:鉴于过往,IBM的此次转型更具深意。这家巨头公司此次转型的任务是,业务架构要从软件硬件服务,转变为云认知行业。IBM的这场转型尚未到最终评定是否成功的阶段,但新的业务组合收入如果超过…

java 包含汉字,java判断字符串中是否包含汉字

java判断字符串中是否包含汉字package com.zuidaima.util;/**[email protected] www.zuidaima.com**/public class test {public static void main(String[] args) {String a "中国China";for (int ia.length(); --i>0;) {String b a.substring(i, i1);boolean …

2013-2017:中国 CV(计算机视觉)公司恩仇录

来源:KnowingAI知智概要:这是属于中国 CV(计算机视觉)公司的五年,这是属于他们的时代。2013 年新广告法还没实行,旷视科技为 Face 写下文案:「最好的人脸识别云计算平台」。2014 年是「格灵深瞳…

git php自动发布,使用 Git Hooks 实现自动部署PHP项目

最近正在寻找一种简便的自动部署代码到服务器的方式,然后就发现了git hooks这个方法,查了一些资料再自己尝试过后,觉得还不错,记录下。什么是git hooks在git上是这么介绍的:和其它版本控制系统一样,Git能在…

matlab读取时间数据,Matlab有关数据库读取及时间项的设定

Matlab有关数据库的读取需下载mysql-connector-java-5.1.26-bin.jar文件放到指定位置,并修改classpath.txt相关文件,具体可网上自行查找。看一下实例:conndatabase(‘photo‘, ‘root‘, ‘123321‘, ‘com.mysql.jdbc.Driver‘, ‘jdbc:mysq…

GAN还有这种操作!谷歌大脑和X实验室利用模拟条件和域适应提高机器抓取效率(附论文)

来源:机器人圈作者:Coogle Brain,Google X概要:相信大家都知道,通过检测和采集带有注释的视觉抓取数据集来训练现代机器学习算法可以说是非常耗时、昂贵的。相信大家都知道,通过检测和采集带有注释的视觉抓…

英伟达的雄心:成为AI时代的计算平台

9 月 26 日,NVIDIA英伟达在北京举行GTC大会,NVIDIA 创始人兼首席执行官黄仁勋在演讲中展示了能够加快人工智能大规模采用速度的全新技术,并介绍了为云服务商、电商和智慧城市提供的各项计算平台服务。发布AI 推理软件TensorRT 3:可…

Gartner公布云计算市场排位:亚马逊微软阿里前三

来源:网易科技概要:Gartner认为,亚马逊、微软和阿里云三大巨头引领了增长,预估IaaS、PaaS和SaaS的5年增长分别为28%、22%和19%。9月27日,美国权威研究机构Gartner发布2016年全球公共云市场份额报告,全球云计…