java – 为什么使用枚举而不是常量?哪个在软件设计和可读性方面更好

我有一个场景,我有播放器类型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中的枚举可以包含与它们相关的更多信息,并且还可以具有行为.全面好多了.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...