Java 枚举用法和原理

Posted wjq2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 枚举用法和原理相关的知识,希望对你有一定的参考价值。

  用法:

 1 package com.wjq.enums;
 2 
 3 // 用户状态
 4 // 0:正常状态(已注册)
 5 // 1:已被封号(已注册)
 6 public enum UserState {
 7     NORMAL(0), SEALED(1);
 8     
 9     private final int value;
10 
11     private UserState(int value) {
12         this.value = value;
13     }
14 
15     public int getValue() {
16         return value;
17     }
18     
19     public static void main(String[] args) {
20         // 输出结果是1
21         System.out.println(UserState.SEALED.getValue());
22     }
23 }

  

  原理:

  经过编译器编译后,枚举类变成抽象类,继承java.lang.Enum。枚举中定义的枚举常量,变成public static final属性,通过内部类来实现。同时,其类型是抽象类的类型,名字是枚举常量的名字,通过静态代码块来初始化枚举常量。不能通过克隆以及序列化和反序列化来复制枚举,保证一个枚举常量是单例。

 

  参考资料

  java枚举类型的实现原理

以上是关于Java 枚举用法和原理的主要内容,如果未能解决你的问题,请参考以下文章

java枚举类型enum用法

三歪问我为啥用枚举,枚举有哪些用法?

java中的enum

java枚举类型

java枚举类型

Java 枚举类型用法