Java Enum,你知道多少?

本文深入探讨了Java中枚举类型的使用方法,包括遍历枚举、使用EnumSet和EnumMap等高级特性,以及如何自定义枚举实例的方法和属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
引用的枚举类型
public enum State {
ON, OFF
};

 

遍历

  • 使用values
for (State s : State.values()) {
			System.out.println(s.name());// s.original()访问值
		}

可以使用switch 枚举变量把枚举值作为case条件。

  • 使用EnumSet
EnumSet<State> stateSet = EnumSet.allOf(State.class);
		for (State s : stateSet) {
			System.out.println(s);
		}
  • 使用EnumMap
EnumMap<State, String> stateMap = new EnumMap<State, String>(State.class);
		stateMap.put(State.ON, "is On");
		stateMap.put(State.OFF, "is off");
		for (State s : State.values()) {
			System.out.println(s.name() + ":" + stateMap.get(s));
		}

或者使用State.class.getEnumConstants()获取State数组。

  • 使用EnumUtils.getEnumList方法
List<State> states = EnumUtils.getEnumList(State.class);

 

 

自定义枚举实例方法

public enum State {
		ON {
			@Override
			String getInfo() {
				return "ON";
			}
		},
		OFF {
			@Override
			String getInfo() {
				return "OFF";
			}
		};
		abstract String getInfo();
	};

可以为枚举实例覆盖toString()方法,如:

OFF {
		@Override
		public String toString() {
			return "关闭";
		}
	};

也可以在覆盖State的toString方法,在方法内使用switch来自定义每个枚举实例的toString值。

 

为枚举自定义值

public enum State {
	ON(1), OFF(2);

	private int value;

	private State(int i) {
		value = i;
	}

	public int getValue() {
		return value;
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值