我有一个场景,我有播放器类型ARCHER,WARRIOR和巫师.
我应该在Player类中为玩家类型使用什么?
常量最终静态字符串变量或枚举?为什么?
请帮助理由.
解决方法:
假设你使用常量字符串(或int值 – 它们也是如此):
// Constants for player types
public static final String ARCHER = "Archer";
public static final String WARRIOR = "Warrior";
// Constants for genders
public static final String MALE = "Male";
public static final String FEMALE = "Female";
然后你最终不知道你的数据类型 – 导致可能不正确的代码:
String playerType = Constants.MALE;
如果你使用枚举,最终会:
// Compile-time error - incompatible types!
PlayerType playerType = Gender.MALE;
同样,枚举提供了一组受限制的值:
String playerType = "Fred"; // Hang on, that's not one we kNow about...
VS
PlayerType playerType = "Fred"; // nope, that doesn't work. Bang!
此外,Java中的枚举可以包含与它们相关的更多信息,并且还可以具有行为.全面好多了.