Enum in Java

1. Enum Class

public enum ContainerPropertyConstants {
    RETAILER("retailer"),
    LINED("isLined"),
    BAGGING("bagging"),
    MISSING("missing"),
    MOVABLE("movable"),
    RESERVABLE("reservable"),
    CONTAINED_DELIVERY_TOTE("hasContainerDeliveryTote"),
    DAMAGED("isDamaged"),
    DIRTY("isDirty"),
    TAINTED("isTainted"),
    CONTAINED_STOCK("hasContainedStock"),
    UNKNOWN("unknown");

    private String value;
    private ContainerPropertyConstants(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }

    @Override
    public String toString() {
        return this.getValue();
    }

    public static ContainerPropertyConstants getEnum(String propertyKey) {
        for(ContainerPropertyConstants v : values()) {
            if(v.getValue().equals(propertyKey.trim())) {
                return v;
            }
        }
        return UNKNOWN;
    }
}

2. Use Enum Class

    private BinAttributes getBinAttributes(Map<PropertyKey, PropertyValue> properties, BinAttributes.Builder builder) {
        properties.forEach((k, v) -> {
            switch (ContainerPropertyConstants.getEnum(k.toString())) {
                case LINED:
                    break;
                case MOVABLE:
                    builder.setAccessibleToPhoenix(Boolean.valueOf(v.getPropertyValue()));
                    break;
                case RESERVABLE:
                    break;
                case CONTAINED_DELIVERY_TOTE:
                    break;
                case DAMAGED:
                    builder.setDamaged(Boolean.valueOf(v.getPropertyValue()));
                    break;
                case DIRTY:
                    builder.setContaminated( Boolean.valueOf(v.getPropertyValue()));
                    break;
                case TAINTED:
                    builder.setTainted(Boolean.valueOf(v.getPropertyValue()));
                    break;
                case CONTAINED_STOCK:
                    break;
                case UNKNOWN:
                    throw new IllegalArgumentException("Phoenix container property [" + k + "] not recognised.");
                default:
                    logger.info("Currently cannot handle container property [{}]", k);
                    break;
            }
        });

        return builder.build();
    }
时间: 2024-10-23 05:54:04

Enum in Java的相关文章

enum的java例子

Grade.java 1 package com.zhiyuan.myenum; 2 3 /** 4 * <p>Title: 枚举类 5 * <p>Company: 6 * @description Enum 7 * @author LIANG ZHIYUAN 8 * @date 2016年4月7日下午11:38:25 9 * @version 1.0 10 */ 11 public enum Grade { 12 13 // 枚举值 14 //A("100-90&quo

java基础:enum枚举

一:enum的用法 (1)JDK1.5之前没有Enum这个类型,那时候一般用接口常量来替代.有了JavaEnum之后,可以更贴近的表示这种常量.  (2)只能取特定值中的一个 (3)使用enum关键字,java.lang.enum(注意java.lang下的类不用导包) (4)枚举对象里面的值都必须是唯一的 二:举例

java enum(枚举)使用详解 + 总结

enum 的全称为 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容: 1. 原始的接口定义常量 2. 语法(定义) 3. 遍历.switch 等常用操作 4. enum 对象的常用方法介绍 5. 给 enum 自定义属性和方法 6. EnumSet,EnumMap 的应用 7. enum 的原理分析 8. 总结 原始的接口定义常量 ? public interface ICon

Java枚举enum以及应用:枚举实现单例模式

枚举作为一个常规的语言概念,一直到Java5才诞生不得不说有点奇怪,以至于到现在为止很多程序员仍然更喜欢用static final的形式去命名常量而不使用,一般情况下,Java程序员用这种方式去实现枚举: class EnumByClass{ public static final int RED=0; public static final int GREEN=1; public static final int BLUE=2; } 这种方式实现的枚举也叫int枚举模式,尽管很常用,但是由in

java enum的用法

原始的常量定义: 1 public static fianl MON=“Mon”; 2 public static final TUE="Tue"; 语法(定义) 创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类).枚举类型符合通用模式Class Enum<E extends Enum<E>>,而 E 表示枚举类型的名称.枚举类型的每一个值都将映射到 protecte

java基础之switch

switch 语句由一个控制表达式和多个case标签组成. switch 控制表达式支持的类型有byte.short.char.int.enum(Java 5).String(Java 7). switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高. default在当前switch找不到匹配的case时执行.default并不是必须的. 一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break. sw

Java编程思想学习(十四) 枚举

关键字enum可以将一组具名的值有限集合创建一种为新的类型,而这些具名的值可以作为常规的程序组件使用. 基本enum特性 调用enum的values()方法可以遍历enum实例,values()方法返回enum实例数组,且数组中元素保持在enum声明时的顺序. 1 public class TestEnum { 2 public static void main(String[] args) { 3 Fruit[] values = Fruit.values(); 4 for (Fruit fr

Maven报错“未结束的字符串字面值” “需要为 class、interface 或 enum”等

eclipse里面编译完全正常,mvn clean install 这么惨的错误: Compilation failure: [ERROR] *.java:[38,27] 未结束的字符串字面值 [ERROR] *.java:[38,53] 需要 ';' [ERROR] *.java:[41,19] 需要 ')' [ERROR] *.java:[41,12] 不是语句 [ERROR] *.java:[41,23] 需要 ';' [ERROR] *.java:[41,26] 不是语句 [ERROR]

[Java 基础]枚举

概念 枚举(enum)是一个被命名的整型常量的集合. enum相对于普通常量最明显的好处在于更有组织性. 尽管enum看起来像是一种新的数据类型,事实上,enum是一种受限制的类,并且具有自己的方法. 创建enum时,编译器会为你生成一个相关的类,这个类继承自java.lang.Enum. java.lang.Enum类声明: public abstract class Enum<E extends Enum<E>> implements Comparable<E>,