您当前的位置:首页 > 互联网教程

java枚举类型enum用法

发布时间:2025-05-22 04:00:35    发布人:远客网络

java枚举类型enum用法

一、java枚举类型enum用法

用法一:常量在JDK1.5之前,我们定义常量都是:public static fianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法

用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

用法三:向枚举中添加新方法如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且Java要求必须先定义enum实例。

用法四:覆盖枚举的方法所有的枚举都继承自java.lang.Enum类。由于Java不支持多继承,所以枚举对象不能再继承其他类。枚举类型都继承Enum

用法五:实现接口 public interface Food{

BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO

二、Java中如何获取自定义注解并获取其值

1、注解在Java中作为新增特性,被广泛使用于标识或值注入等场景。深入理解注解,自定义注解是关键。

2、元注解揭示了注解的使用范围与生命周期。

3、@Target说明注解作用于哪些对象,如构造器、字段、局部变量、方法、包、参数和类、接口(包括注解类型)或枚举声明。

4、@Retention定义注解的生命周期,可选择在源文件中有效、类文件中有效或运行时有效。

5、@Documented标记注解应当被作为程序成员的公共API,便于文档化,虽功能有限,但有助于工具理解。@Inherited则允许子类继承注解。

6、定义注解的步骤清晰:首先定义注解,可附加元注解以增强功能,如限定注解应用范围或生命周期。

7、获取注解值的流程如下:调用注解实例的getClass方法,通过getClass().getAnnotation方法获取注解实例,使用value方法获取值。对于字段,通过getDeclaredFields方法获取所有字段,遍历并使用value方法获取注解值,最后通过反射获取字段实际值。

三、java枚举问题

1、*枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法

2、//注:枚举写在最前面,否则编译出错

3、spring, summer, autumn, winter;

4、private final static String position="test";

5、public static SeasonEnum getSeason(){

6、//通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错

7、//赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错

8、//构造器默认也只能是private,从而保证构造函数只能在内部使用

9、CANCEL{public String getName(){return"已取消";}},

10、WAITCONFIRM{public String getName(){return"待审核";}},

11、WAITPAYMENT{public String getName(){return"等待付款";}},

12、ADMEASUREPRODUCT{public String getName(){return"正在配货";}},

13、WAITDELIVER{public String getName(){return"等待发货";}},

14、DELIVERED{public String getName(){return"已发货";}},

15、RECEIVED{public String getName(){return"已收货";}};

16、public abstract String getName();

17、public static void main(String[] args){

18、//枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值

19、ColorEnum colorEnum= ColorEnum.blue;

20、System.out.println("color is red");

21、System.out.println("color is green");

22、System.out.println("color is yellow");

23、System.out.println("color is blue");

24、System.out.println("遍历ColorEnum枚举中的值");

25、for(ColorEnum color: ColorEnum.values()){

26、System.out.println("ColorEnum枚举中的值有"+ColorEnum.values().length+"个");

27、//获取枚举的索引位置,默认从0开始

28、System.out.println(ColorEnum.red.ordinal());//0

29、System.out.println(ColorEnum.green.ordinal());//1

30、System.out.println(ColorEnum.yellow.ordinal());//2

31、System.out.println(ColorEnum.blue.ordinal());//3

32、//枚举默认实现了java.lang.Comparable接口

33、System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1

34、System.out.println("===========");

35、System.err.println("季节为"+ SeasonEnum.getSeason());

36、System.out.println("===========");

37、for(Gender gender: Gender.values()){

38、System.out.println(gender.value);

39、System.out.println("===========");

40、for(OrderState order: OrderState.values()){

41、System.out.println(order.getName());