这两天在想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中的枚举,想要上述做法,真费劲,有什么好办法呢。