java中的枚举enum,如何实现

这两天在想java中的枚举,不是很明白,java中的枚举除自身的枚举成员外,还可以实现接口,可以有构造函数及可以定义方法。

c#中的枚举简简单单的值类型,而java中的枚举是引用类型。

在c#项目中,经常用枚举,

public enum FileType

{

  Unknow=0,

  Word=1,

  Excel=2

}

public T NumToEnum(int number)
{
try
{
if (Enum.IsDefined(typeof(T), number))
{
T t = (T)System.Enum.ToObject(typeof(T), number);
return t;
}
}
catch
{ }

        return default(T);
    }

public T StringToEnum(string name)
{
try
{
if (Enum.IsDefined(typeof(T), name))
{
T t = (T)System.Enum.Parse(typeof(T), name);
return t;
}
}
catch
{ }

        return default(T);
    }

枚举转换更简单

FileType fileType=EnumUtil.Instance.NumToEnum(6);

if(fileType==FileType.Unknow)

Console.WriteLine("当前成员未知");

或者

FileType fileType=EnumUtil.Instance.StringToEnum("pdf");

if(fileType==FileType.Unknow)

Console.WriteLine("当前成员未知");

而java中的枚举,想要上述做法,真费劲,有什么好办法呢。

java里的枚举不如c#灵活

可参考以下链接

http://xyiyy.iteye.com/blog/359663/

参考:http://www.cnblogs.com/mu-mu/archive/2011/12/28/2304189.html

这个很实用!,在找资料学习