java中的枚举enum,如何实现

问题描述

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/

时间: 2024-10-22 18:23:34

java中的枚举enum,如何实现的相关文章

Jsdk5.0中新增枚举enum类型使用例解

js 作者:Junsan Jin 日期:2005-03-25 邮箱:junsan21@126.com ; junnef21@sohu.com Jsdk5.0中新增了很多的特性,如泛型.增强的循环.改进的装.拆箱.静态引入等,大大增强了java语言的易用性. 我现在正在做一个从com+(dcom)平台到j2ee平台移植的项目,中间有很多枚举类型的定义,以前做起来要引入第三方类库,或者自己写类库,或者干脆定义成静态变量使用,很不方便,而且可能会产生很多问题.Jsdk5.0的发布正好解决了这些问题.

java中的枚举问题中的变量

问题描述 java中的枚举问题中的变量 新人初学java,在学到枚举的时候遇到了问题,求教各位 枚举中有这样一段定义 public class WeekDay(){ private WeekDay(){} public final static WeekDay SUN = new WeekDay() ...... } 后面就是这样得一些定义星期的代码 不明白的地方: 1.这里是枚举的问题:为什么创建对象可以在这个类的内部,一般来说,不是一般只有在另一个类里创建这个类的对象算是正确吗? 2. 这里

全面解读Java中的枚举类型enum的使用_java

关于枚举大多数地方写的枚举都是给一个枚举然后例子就开始switch,可是我想说,我代码里头来源的数据不太可能就是枚举,通常是字符串或数字,比如一个SQL我解析后首先判定SQL类型,通过截取SQL的token,截取出来可能是SELECT.DELETE.UPDATE.INSERT.ALTER等等,但是都是字符串,此时我想用枚举就不行了,我要将字符串转换成枚举怎么转呢,类似的情况还有从数据库取出数据根据一些类型做判定,从页面传入数据,根据不同的类型做不同的操作,但是都是字符串,不是枚举,悲剧的是我很少

Java中的枚举与values()方法

在编写Java程序时经常会用到枚举(后面统一用enum描述)类型,今天我们就来看一下enum中常用到的values()方法. 首先,我们在Eclipse中编写一个简单的类: public class EnumTest { private enum Directions { NORTH, SOUTH, EAST, WEST } } 1 2 3 4 5 1 2 3 4 5 在这里,我们定义了一个名叫Directions的enum,它其中包含了四个方向.  接下来,我们写一个简单的main函数,仅仅是

java中的枚举类型详细介绍_java

枚举中有values方法用于按照枚举定义的顺序生成一个数组,可以用来历遍.我们自定义的枚举类都是继承自java.lang.Enum,拥有一下实例中的功能: 复制代码 代码如下: //: enumerated/EnumClass.java // Capabilities of the Enum class import static net.mindview.util.Print.*; enum Shrubbery { GROUND, CRAWLING, HANGING } public clas

Java中枚举的使用详解_java

枚举简介:  为什么要用枚举:     枚举是Java1.5出来之后新增的类型,它可以用来定义一组取值范围固定的的变量.     在枚举没有出来之前,要定义这样的变量,往往是通过定义一个接口,将不同的变量     使用不同的整数赋值.但是这样的却有着很明显的缺点:         1.不能保证其定义数值的合法性: 在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的&quo

再谈java枚举 ENUM

没有枚举之前: 在没有枚举之前,我们想列举一些相关的常量,我们会采用如下的方式: 1 2 3 4 interface ActionInterface {     public static final int RIGHT = 0;     public static final int LEFT = 1; } 然后在某个类似于下面的方法中,使用这些常量: 1 2 3 4 5 6 7 8 9 10 11 12 public void playWithInterface(int num) {    

Java中的Enum的使用与分析

使用name()方法和valueOf(String)方法可以在枚举类型对象和字符串之间方便得转换.如果valueOf(String)方法的参数不是该枚举类型合法的字符串,则会抛出IllegalArgumentException异常.Enum类提供了一个ordinal()方法,用来返回枚举对象的序数,比如本例中SPRING, SUMMER, AUTUMN, WINTER的序数就分别为0, 1, 2, 3.我们需要使用这个序数,而且还有可能再根据这个序数生成所需要的枚举对象eg1: package

Java枚举(enum) 详解7种常见的用法_java

JDK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便.  用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int