qq_25865569 2015-02-06 05:27 采纳率: 0%
浏览 3814

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

  • 写回答

3条回答 默认 最新

  • WorldMobile 2015-02-06 05:32
    关注

    java里的枚举不如c#灵活

    可参考以下链接

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

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)