JAVA项目中enum+switch的用法


昨天遇到的问题,查询相关资料解决如下:

Enum类
public enum ServiceTypeEnum {
    DEPLOYMENT,STATEFULSET
}

方法中使用:
serviceType = deployment;
ServiceTypeEnum typeEnum = ServiceTypeEnum.valueOf(serviceType.toUpperCase());
        switch (typeEnum){
            case DEPLOYMENT:
                ...
                break;
            case STATEFULSET:
                ...
                break;
            default:
                break;
        }

将String类型转为枚举类类型即可

### Java 枚举类型 `enum` 的用法 枚举类型 (`enum`) 是一种特殊的数据类型,允许变量被赋予一组预定义常量中的一个。这有助于提高代码可读性和安全性。 #### 定义简单的枚举类 可以创建表示一周七天的简单枚举: ```java public enum DayOfWeek { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY; } ``` 此段代码声明了一个名为 `DayOfWeek` 的枚举类型,并为其指定了七个可能取值[^1]。 #### 增强功能:带字段和方法的枚举 除了基本形式外,还可以给枚举成员添加属性以及实现接口或编写自定义逻辑的方法: ```java public enum Planet { MERCURY(3.30E23), VENUS(4.87E24), EARTH(5.98E24), MARS(6.42E23); private final double mass; // 私有构造函数用于初始化实例变量 Planet(double mass) { this.mass = mass; } public double getMass() { return mass; } } ``` 这里展示了如何通过私有的构造器来设置每个行星的质量参数,并提供了获取该质量值得公共访问器方法。 #### 使用场景举例——状态机模拟 当处理具有有限数量离散状态的对象时,比如订单的状态转换过程,使用枚举是非常合适的解决方案之一: ```java public class Order { private Status status; public void setStatus(Status newStatus){ switch(this.status){ case PENDING: if(newStatus != Status.PROCESSING && newStatus != Status.CANCELLED) throw new IllegalStateException(); break; case PROCESSING: if(newStatus != Status.SHIPPED) throw new IllegalStateException(); break; default: if(!newStatus.equals(Status.COMPLETED)) throw new IllegalStateException(); } this.status = newStatus; } public static enum Status{ PENDING, PROCESSING, SHIPPED, COMPLETED, CANCELLED; } } ``` 上述例子中,`Order.Status` 枚举用来管理订单的不同阶段及其合法转变路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值