`
francis.xjl
  • 浏览: 16121 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

使用枚举类型的一个注意点

阅读更多
申明:本人菜鸟~以下总结属于菜鸟级总结,大牛走开!
  

对于枚举类型,有一点需要非常注意:

可以在其中定义数组常量,但是最好不要在使用内部构造函数时使用这些数组常量,因为此时这些数组常量可能尚未初始化,估计是由于初始化顺序的问题。

对于以下程序,我在Debug时发现,当这些枚举类型调用内部构造方法时,对于那些定义在HeroEnum中的那些枚举类型数组SkillEnum[]常量居然没有初始化。

我的解决方法是:将下面的常量放到其它接口或类中就没有什么问题了。


public enum HeroEnum {
	
	//复仇之魂
	Vengeful_Spirit(HeroEnum.VS_SES),
	//众神之王
	Lord_of_Olympia(HeroEnum.LO_SES),
	//魅惑魔女
	Enchantress(HeroEnum.Enc_SES),
	//变体精灵
	Morphling(HeroEnum.Mor_SES),
	//水晶室女
	Crystal_Maiden(HeroEnum.CM_SES)
	;

	public static final SkillEnum[] VS_SES = {SkillEnum.Magic_Missile, SkillEnum.Commande_Aura, SkillEnum.Terror, SkillEnum.Nether_Swap} ;
	public static final SkillEnum[] LO_SES = {SkillEnum.Arc_Lightning, SkillEnum.Lightning_Bolt, SkillEnum.Static_Field, SkillEnum.Thundergod_Wrath};
	public static final SkillEnum[] Enc_SES = {SkillEnum.Impetus, SkillEnum.Enchant, SkillEnum.Nature_Attendants, SkillEnum.Untouchable};
	public static final SkillEnum[] Mor_SES = {SkillEnum.Waveform, SkillEnum.Adaptive_Strike, SkillEnum.Morph, SkillEnum.Replicate};
	public static final SkillEnum[] CM_SES = {SkillEnum.Frost_Nova, SkillEnum.Frostbite, SkillEnum.Brilliance_Aura, SkillEnum.Freezing_Field};

	private HeroEnum(SkillEnum[] SkillEnum){
		
	}
	//省略若干方法
}
分享到:
评论
1 楼 francis.xjl 2010-08-10  
找到原因了:
http://rednaxelafx.iteye.com/blog/460981

相关推荐

    java枚举类型说明

    java枚举类型的说说明,详细阐述了枚举类型的使用和注意事项

    跟涛哥一起学嵌入式30:C语言枚举类型深入剖析.pdf

    C语言枚举类型深入讲解,超详细:enum经常使用的三种方法;枚举的本质;枚举和宏定义的对比分析;Linux内核中的枚举类型及使用技巧分析;使用枚举需要注意的一些细节,在这篇文档中都会详细讲解。

    C#枚举类型与结构类型实例解析

    本文以C#实例讲解了枚举类型与结构类型的用法,程序主要是通过个人电话本演示枚举类型与结构类型的用法,具体代码如下所示: using System; class ID { //定义枚举类型 public enum Sex { male, female };//...

    C#枚举类型和结构体

    注意:枚举类型和结构体都属于值类型。  结构体:是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样。  一、定义的方法:  struct student  {  public int nianling;  public int ...

    C#枚举类型和结构体详解

    注意:枚举类型和结构体都属于值类型。 结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样。  一、定义的方法: struct student { public int nianling; public int fenshu; public...

    Android使用注解代替枚举节省系统内存开销的方法

    Java5以后开始支持枚举类型,枚举类型使用起来非常方便,其重要的作用是作为类型安全使用的。如果在不考虑系统内存开销的情况下大量的使用枚举也不会有什么问题。但是移动端还是需要注意的。 android系统在应用启动...

    JDK 1.5新特性---枚举类型

    Enum是Sun全新引进的一个关键字,看起来很象是特殊的class,它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。在声明一个enum类型时,应该注意到enum类型有如下的一些特征:

    全面了解结构体、联合体和枚举类型

    注意:这不是定义变量,而是自定义一种类型而已。 如 struct student  {  char name[10];//学生姓名  int height;//学生身高  bool sex;//学生性别 假设0表示女,1表示男。  };//此处分号不能少。 2. 定义...

    掌握JDK1.5枚举类型

    当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。 1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。 2.所有枚举值都是public , static , final的。注意这...

    API之网络函数---整理网络函数及功能

    EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 EnumPrintProcessors 枚举系统中可用的打印处理器 Escape 设备控制函数 FindClosePrinterChangeNotification 关闭用...

    XmlSerializer基本例子以及注意事项(代码注释)

    3. 对于枚举类型的属性,在序列化之前一定要赋值,否则会序列化失败。这个问题我在Windows service程序下调试了半天,才发现。奇怪怎么网上都没说呢? 4. 注意XmlAttribute和XmlElement的区别。 ...

    C# 枚举转换操作

     注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值。  Enum 提供一些实用的静态方法:  (1)比较枚举类的实例的方法  (2)将实例的值转换为其字符串表示形式的方法  (3)将数字的...

    C#中enum和string的相互转换

    注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值 1、C#将枚举转为字符串(enume->string) 我们的对象中包含枚举类型,在序列化成Json字符串的时候,显示的是枚举类型对应的数字。因为这是...

    1数据库设计规范.doc

    金额类型使用Money 时间使用 DateTime 枚举类型使用 Varchar(2)、Varchar(4),且需要说明枚举类型的各个不同取值的含义,例如 00,01,0000,0001 在主外键的选择上应注意:为关联字段创建外键、所有的键都必须唯一、...

    .net中Attribute、TypeConverter、UITypeEditor的自定义--.net自定义控件属性特性配置及相关类的设计

    注意,各个属性均是自己定义的一个枚举类型AlignMode。 查看各个属性并注意下方的说明,再结合源代码,你一定会有很大的收获。 可以通过:...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    3.4 在生成的程序集中引用一个强命名程序集 3.5 强命名程序集能防范篡改 3.6 延迟签名 3.7 私有部署强命名程序集 3.8 “运行时”如何解析类型引用 3.9 高级管理控制(配置) 3.9.1 发布者策略控制 第4章 类 型...

    ts-enum-util:严格类型的实用程序,用于处理TypeScript枚举

    ts-enum-util 严格类型的实用程序,用于处理TypeScript枚举(以及... 使用编译时类型防护,对指定值或键对给定枚举有效的运行时验证。 处理类似于键/值元组数组的枚举。 处理类似于值映射的枚举。 所有这些实用程序都是

    仿中关村在线参数修改弹出对话框 V1.1

    2、增加了“验证输入的数字是否在其类型的取值范围内”函数,使用枚举类型数据和Switch Case为不同取值范围的整型数据输出验证提示信息(2011-11-4) 3、对验证控件进行了修改(2011-11-4) VerificationAsc.ascx 中的...

    浅谈Python 的枚举 Enum

    枚举是常用的功能,看看Python的枚举. from enum import Enum Month = Enum('Month',...但是两个相同值的成员,第二个成员的名称被视作第一个成员的别名  如果枚举中存在相同值的成员,在通过值获取枚举成员时,只能获

Global site tag (gtag.js) - Google Analytics