论坛首页 Java企业应用论坛

枚举的一种高级用法

浏览 7375 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2010-08-08  
package abstract_factory;

public enum RoomEnum {
	//定义值的时候同时调用自己定义的内部构造函数。
	BedRoom("abstract_factory.BedRoom"),
	LivingRoom("abstract_factory.LivingRoom");
	
	private String value = "";
	
	private RoomEnum(String value) {
		this.value = value;
	}
	
	public String getValue() {
		return this.value;
	}
	
	public static String test() {
		return BedRoom.value;
	}
	
	public static void main(String[]args) {
		System.out.println(RoomEnum.test());
	}
}

Enum类型作为一个参数传递到一个方法中时,在Junit进行单元测试的时候,不用判断输入参数是否为空、长度为0的边界异常条件。

这种比较高级的用法,可以用在创建一系列类时,缩减代码量。
   发表时间:2010-08-08  
楼主可以看看java.util.concurrent.TimeUnit更加高级,混合了算法。
1 请登录后投票
   发表时间:2010-08-09  
确实很高级啊
0 请登录后投票
   发表时间:2010-08-09  
没用过,lz可否具体说明用在哪一方面的嘛?
0 请登录后投票
   发表时间:2010-08-09  
楼主,你在说啥子哦,没看懂呢
0 请登录后投票
   发表时间:2010-08-09  
惭愧  没看懂
0 请登录后投票
   发表时间:2010-08-09  
我 也 没 懂
0 请登录后投票
   发表时间:2010-08-09  
package org.test;

public enum RoomEnum {

    BedRoom("org.test.BedRoom"),  
    LivingRoom("org.test.LivingRoom");  
      
    private String value = "";  
    
    private RoomEnum(String value) {  
        this.value = value;  
    }
    
    public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}

	public static void main(String[]args) {  
        System.out.println(RoomEnum.BedRoom.getValue());  
    }  
	
}

lz这样写不是更好些?

BedRoom("org.test.BedRoom"), 
LivingRoom("org.test.LivingRoom");
大致意思为
RoomEnum.BedRoom = new RoomEnum("org.test.BedRoom");
RoomEnum.LivingRoom = new RoomEnum("org.test.LivingRoom");
0 请登录后投票
   发表时间:2010-08-09  
意为enum也可以是以对象,也可以有方法,有成员变量,还可以计算
0 请登录后投票
   发表时间:2010-08-09  
LZ那个算基本用法了吧,LS的几个都可以算高级些的用法。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics