gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:18:59 24 4
gpt4 key购买 nike

我有一个场景,其中我有 玩家类型 ARCHERWARRIORsorcerer
我应该在 Player 类中为玩家类型使用什么?
常量 final static String 变量还是 Enum?为什么?
请帮忙说明原因。

最佳答案

假设您使用常量字符串(或 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...

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

此外,Java 中的枚举可以有更多与之相关的信息,也可以有行为。整体上好多了。

关于java - 为什么使用枚举而不是常量?在软件设计和可读性方面哪个更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11575376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com