关于ZAKER 融媒体解决方案 合作 加入

java – 为什么使用枚举而不是常量?哪个 .

CocoaChina 09-18

我有一个场景 , 我有播放器类型 ARCHER,WARRIOR 和巫师 .

我应该在 Player 类中为玩家类型使用什么?

常量最终静态字符串变量或枚举?为什么?

请帮助理由 .

最佳答案

假设你使用常量字符串 ( 或 int 值 – 它们也是如此 ) :

// Constants for player typespublic static final String ARCHER = "Archer";public static final String WARRIOR = "Warrior";// Constants for genderspublic 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...

PlayerType playerType = "Fred"; // Nope, that doesn't work. Bang!

此外 ,Java 中的枚举可以包含与它们相关的更多信息 , 并且还可以具有行为 . 全面好多了 .

以上内容由"CocoaChina"上传发布 查看原文
相关标签 java

觉得文章不错,微信扫描分享好友

扫码分享