枚举

/*
 * 可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,
 * 不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum。
 */
public enum EnumDemo{
	MON("星一",1), TUE("星二",2), WED("星三",3), THU("星四",4), FRI("星五",5), SAT("星六",6),SUN("星日",7),
	Red("红",11){
      
	};
	
	String name;
	int index;
	EnumDemo(String name,int index){
		this.name=name;
		this.index=index;
	}
	
	public String getName(int index){
		for(EnumDemo e:EnumDemo.values()){
			if(e.index==index)return e.name;
		}
		return "wrong choice,please input numbers between 1 and 7";
	}
	
	public String getName(){
		return this.name;
	}
	
	public int getIndex(){
		return this.index;
	}
	
	/**
     * 获取枚举对象
     * @param key key值
     * @return enumDemo或null
     */
    public static EnumDemo getEnumDemoByCode(Integer key) {
        for (EnumDemo enumDemo : EnumDemo.values()) {
            if(key != null && key.intValue() == enumDemo.getIndex()){
                return enumDemo;
            }
        }
        return null;
    }
}

于vo中使用枚举

public String getEnumDemoView() {
	if(key!=null) {
		EnumDemo enumDemo = EnumDemo.getEnumDemoByCode(key);
		if(enumDemo !=null){
			return enumDemo.getName();
		}
	}
	return enumDemoView;
}

EnumSet&&EnumMap

//EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。
	   EnumSet<EnumDemo> edset=EnumSet.allOf(EnumDemo.class);
	   for(EnumDemo ed:edset){
		 //  System.out.println(ed);
	   }
	   
	   EnumMap<EnumDemo,String> edmap=new EnumMap(EnumDemo.class);
	   edmap.put(EnumDemo.MON, "星期一");
	   for(Iterator it=edmap.entrySet().iterator();it.hasNext();){
		   Map.Entry<EnumDemo,String> m=(Map.Entry) it.next();
		   //System.out.println(it.next().toString());
		   System.out.println(m.getKey().index+";"+m.getValue());
	   }

注意:
枚举类型会由JVM在加载的时候实例化枚举对象,JVM为了保证每一个枚举类元素的唯一实例,把构造函数设计成private,以此防止用户生成实例,破坏唯一性。
因此,当修改构造方法的访问级别时,编译器会报错.当然,如果在构造器前面加上private.编译器会提示我们redundant(多余的).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值