java枚举的用法

Posted lingshang

tags:

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

java枚举的用法

1. 枚举类型的使用

package com.longfor.devops.eagleeye.client.dto;

import lombok.Data;

/**
 * @author liuyang
 */
@Data
public class AppStatusDTO {

    /**
     * app的ID
     */
    private String appInstanceId;

    /**
     * app的状态
     */
    private Status status;

    /**
     * 状态的内容
     */
    private String content;

    /**
     * 时间戳
     */
    private Integer timestamp;

        // red, yellow, green, unknown代表的就是枚举出来的不同实例,传入的参数, 后面的构造函数中Status(int i)中进行的定义
    public enum Status {
        /**
         * 不健康
         */
        red(2),
        /**
         * 良好
         */
        yellow(1),
        /**
         * 健康
         */
        green(0),
        /**
         * 未知
         */
        unknown(-1);

        public final int num;

        Status(int i) {
            this.num = i;
        }

        public static Status valueOf(int num){
            switch (num){
                case 0 : return AppStatusDTO.Status.green;
                case 1: return AppStatusDTO.Status.yellow;
                case 2: return AppStatusDTO.Status.red;
                default:return AppStatusDTO.Status.unknown;
            }
        }
    }

}

2. 枚举类型的使用

package javatest;

import org.junit.Test;

import java.util.EnumMap;
import java.util.EnumSet;

/**
 * @ClassName STest
 * @Description TODO
 * @Author lingxiangxiang
 * @Date 11:49 AM
 * @Version 1.0
 **/
public class STest {

    @Test
    public void hello() {

        AppStatusDTO appStatusDTO = new AppStatusDTO();
        // 设置Status的变量
        appStatusDTO.setStatus(AppStatusDTO.Status.red);
        // 获取Status的具体的值
        System.out.println(appStatusDTO.getStatus().num);


        // 通过values的方法来遍历所有的枚举类型
        for (AppStatusDTO.Status status: AppStatusDTO.Status.values()) {
            System.out.println(status.num);
            System.out.println(status.toString());
        }


        // 通过EnumSet来遍历所有的枚举
        EnumSet<AppStatusDTO.Status> colors = EnumSet.allOf(AppStatusDTO.Status.class);
        for (AppStatusDTO.Status color: colors) {
            System.out.println(color);
        }

    }

}

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

java中的enum

Java 枚举类型用法

Java 枚举7常见种用法

Java enum(枚举)的用法详解(转)

java枚举类型

java枚举类型