问题描述
- 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中的枚举,想要上述做法,真费劲,有什么好办法呢。
解决方案
参考:http://www.cnblogs.com/mu-mu/archive/2011/12/28/2304189.html
解决方案二:
java里的枚举不如c#灵活
可参考以下链接
http://xyiyy.iteye.com/blog/359663/