枚举是一种类型,用于定义变量,以限制变量的赋值 赋值时通过"枚举名值"来取得相关枚举中的值
public enum Season {
winter, spring, summer, fall;
}
表示Season(季节)的值只能是枚举里面定义的 winter, spring, summer, fall(春夏秋冬);
由于每个程序员在开始编程时一般会首先学习C/C++,然后再学习Java,在C++中枚举是可以定义枚举值为特定的整数的,但这在Java中却没有得到支持,大概C/C++中的枚举代表了数值型常量多一些,而Java中枚举值,更确切的说为枚举类型对象。在Java中定义一个简单的枚举类如下所示。
一, 从controller往视图传递值,controller---->视图
1)简单类型,如int, String,直接写在controller方法的参数里,是无法传递到视图页面上的(经测试)。
(而用@RequestParam("name")注解,可以从视图上,或地址中加name=传递到controller方法里)
2)可以用Map<String, Object>,其键值可以在页面上用EL表达式${键值名}得到,
3)也可以用Model类对象来传递,有addAttribute(key, value)方法,其键值可以在页面上用EL表达式${键值名}得到,
如果用addAttribute(value)这个方法,会将类型名的首字母改成小写后,作为键值名传递过去,例如"ok"在页面上用${string}得到,而一个复合类对象,如User类对象,页面上用${user}得到该对象,用${userpropertyName}得到其属性,这是用Model的一大优势。
例如,modeladdAttribute(new User("my姓名","我的爱好有游泳打球"));
这样页面上就能用${username}和${userhobby}打印对应属性
@RequestMapping(value={"/","/hello"})
public String hello(int id,Map<String,Object> map) {
Systemoutprintln(id);
Systemoutprintln("hello");
mapput("hello", "world");
return "hello";
}
@RequestMapping(value="/say")
public String say(@RequestParam int id,Model model) {
Systemoutprintln("say");
modeladdAttribute("hello", "value");
//使用Object的类型作为key,String-->string
modeladdAttribute("ok");
return "hello";
} >
赋值必须给枚举类增加成员属性,再给用构造方法成员属性赋值。
public class Test{
static public enum TestEnum{
E_A("aa"),
E_B("bb"),
E_C("cc");
public final String text;
TestEnum(String t){
text=t;
}
}
public static void main(String[] args){
for(TestEnum e : TestEnumvalues())
Systemoutprintln(e+" "+etext);
}
}
======
E_A aa
E_B bb
E_C cc
enum 枚举类还是你 Enumeration
如果是枚举类型 例如 定义一个枚举类
public Enum En{
A , B, C
}
在主方法中打印出来
for(int i=0;i<Enum_001values()length;i++)
Systemoutprint(Enum_001values()[i]+",");
}
如果是Enumeration
while(enuhasMoreElements()){
enunextElement(); /返回一个对象类 ,具体范围的对象就是你把1,2,3存储的位置
}
这样就可以打印出来你要求的
枚举用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。
任意两个枚举成员不能具有相同的名称
在枚举类型中声明的第一个枚举成员它的默值为0
允许多个枚举成员有相同的值
没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1
eg:
public enum Number
{
a=1,
b,
c=1,
d
} ;
b的值为2,d的值为2
接口 Enumeration的两个函数 boolean hasMoreElements()测试此枚举是否包含更多的元素。 nextElement()如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。 利用这两个函数,利用while循环就可以读取里面的元素,当然读取出来得元素通过强制转换,就可以和变量进行比较 。
枚举其实就是一种类型,跟int, char 这种差不多,就是定义变量时限制输入的,你只能够赋enum里面规定的值。
枚举类型是JDK50的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:
Java代码:
public enum Color{
RED,BLUE,BLACK,YELLOW,GREEN
}
显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。
而这些类都是类库中Enum类的子类(javalangEnum)。
它们继承了这个Enum中的许多有用的方法。
我们对代码编译之后发现,编译器将enum类型单独编译成了一个字节码文件:Colorclass。
方式一:写判断
public enum ORDER {FIRST, SECOND;
public static ORDER getEnumOrder(int order) {
switch (order) {
case 1:
return FIRST;
case 2:
return SECOND;
default:
return null;
}
}
}
在使用的地方
ORDER first = ORDERgetEnumOrder(1);方式二:字符串拼接
public enum ORDER {ORDER_1, ORDER_2;
}
在使用的地方
ORDER first = ORDERvalueOf("ORDER_" + 1);方式三:枚举数组
public enum ORDER {FIRST, SECOND;
}
在使用的地方
int order = 1;ORDER[] orders = ORDERvalues();
ORDER first = orders[order - 1];
以上就是关于java枚举是什么意思举个最简单的例子全部的内容,包括:java枚举是什么意思举个最简单的例子、java自定义httpstatus枚举值、java springmvc 页面枚举类型作为怎样查询条件并传递参数到controller等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)