外贸球衣网站,好大学网站设计,在线网页截图,相册管理网站模板下载失败本文转载自#xff1a;http://blog.csdn.net/qq_27093465/article/details/51706076 作者#xff1a;李学凯什么时候想用枚举类型#xff1a;有时候#xff0c;在设计一个java model对象的时候#xff0c;你需要一些具体的常量字符串之类的东西#xff0c;这个东西又没必…本文转载自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();就可以这么使用了。为什么要这么设计常量这里有个代码的书写原则这东西一般是没人而且书里面也是没人跟你说的都是代码看多了或者在你犯错误的时候才知道的问题。就是在自己的代码里面要是想使代码很规范不被吊打那么写出来的逻辑代码里面是不应该出现常量字符串和常量数字之类的东西。例如代码里面出现数字1008或者其他的数字字符串如只要是在逻辑代码里面带引号的。这些代码你写出来虽然在功能上是没有问题的但是这些都是隐藏的炸弹。好的代码是不会出现这个问题的。这些东西都应该被定义成一个常量然后再在其他地方使用。类似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依次对应 为数字 012345形式A.XXXX.a.ordinal();这么个方式调用。创建枚举类型要使用 enum 关键字隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)其中的方法和属性如下图enum 对象的常用方法介绍int compareTo(E o) 比较此枚举与指定对象的顺序。Class getDeclaringClass()返回与此枚举常量的枚举类型相对应的 Class 对象。String name() 返回此枚举常量的名称在其枚举声明中对其进行声明。int ordinal() 返回枚举常量的序数(它在枚举声明中的位置其中初始常量序数为零)。String toString()返回枚举常量的名称它包含在声明中。static T valueOf(Class enumType, String name)返回带指定名称的指定枚举类型的枚举常量。