java枚举类型enum用法
发布时间:2025-05-22 04:00:35 发布人:远客网络
一、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());