java枚举是什么意思举个最简单的例子

java枚举是什么意思举个最简单的例子,第1张

枚举是一种类型,用于定义变量,以限制变量的赋值 赋值时通过"枚举名值"来取得相关枚举中的值

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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9523760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存