申明:本人菜鸟~以下总结属于菜鸟级总结,大牛走开!
:( :shock: :shock:
对于枚举类型,有一点需要非常注意:
可以在其中定义数组常量,但是最好不要在使用内部构造函数时使用这些数组常量,因为此时这些数组常量可能尚未初始化,估计是由于初始化顺序的问题。
对于以下程序,我在Debug时发现,当这些枚举类型调用内部构造方法时,对于那些定义在HeroEnum中的那些枚举类型数组SkillEnum[]常量居然没有初始化。
[color=red]我的解决方法是:将下面的常量放到其它接口或类中就没有什么问题了。[/color]
:( :shock: :shock:
对于枚举类型,有一点需要非常注意:
可以在其中定义数组常量,但是最好不要在使用内部构造函数时使用这些数组常量,因为此时这些数组常量可能尚未初始化,估计是由于初始化顺序的问题。
对于以下程序,我在Debug时发现,当这些枚举类型调用内部构造方法时,对于那些定义在HeroEnum中的那些枚举类型数组SkillEnum[]常量居然没有初始化。
[color=red]我的解决方法是:将下面的常量放到其它接口或类中就没有什么问题了。[/color]
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){
}
//省略若干方法
}