Enum枚举类型

本文介绍了Java中的枚举类型,包括其特性如继承Enum类和final变量,以及在内部类、switchcase结构、单例模式和集合(EnumSet和EnumMap)中的应用。讨论了不同类型的枚举实例化方法,如饿汉式和懒汉式。
摘要由CSDN通过智能技术生成

枚举类型

特性

  • 一种特殊的类
  • 默认继承Enum类
  • static变量和数组
  • final变量(可以==比较)

应用

  • 内部类
public class Player {
private PlayerType type;
public enum PlayerType {
TENNIS,
FOOTBALL,
BASKETBALL
 }
public boolean isBasketballPlayer() {
return getType() == PlayerType.BASKETBALL;
 }
public PlayerType getType() {
return type;
 }
public void setType(PlayerType type) {
this.type = type;
 }
}
  • switch{}case:
switch (playerType) {
case TENNIS:
return "⽹球运动员费德勒";
case FOOTBALL:
return "⾜球运动员C罗";
case BASKETBALL:
return "篮球运动员詹姆斯";
case UNKNOWN:
throw new IllegalArgumentException("未知");
default:
throw new IllegalArgumentException(
"运动员类型: " + playerType);
}
  • singleton()
//不能反射(newInstance)和反序列化(Enum类readObject()异常)
public enum EasySingleton{
INSTANCE;
}

扩展:
饿汉(直接实例化)标准、静态代码块、枚举
懒汉(使用实例化)普通、DCL(线程不安全,引入voliate<地址、初始化、引用指向>)、静态内部类

  • EnumSet(抽象类)
EnumSet<PlayerType> enumSetNone = EnumSet.noneOf(PlayerType.class);
EnumSet<PlayerType> enumSetAll = EnumSet.allOf(PlayerType.class);
  • EnumMap
EnumMap<PlayerType, String> enumMap = new EnumMap<>(PlayerType.class);
put(k,v)、get(k)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值