gpt4 book ai didi

Java 枚举与静态常量

转载 作者:IT老高 更新时间:2023-10-28 20:50:11 25 4
gpt4 key购买 nike

我正在查看一些由公司其他部门维护的 Java 代码,顺便提一下,一些前 C 和 C++ 开发人员。普遍存在的一件事是使用静态整数常量,例如

class Engine {
private static int ENGINE_IDLE = 0;
private static int ENGINE_COLLECTING = 1;
...
}

除了缺少“final”限定符之外,我对这种代码有点困扰。我希望看到,在学校主要接受 Java 培训,会更像

class Engine {
private enum State { Idle, Collecting };
...
}

但是,我的论点失败了。为什么,如果有的话,后者比前者更好?

最佳答案

Why, if at all, is the latter better than the former?

这要好得多,因为它为您提供了类型安全性并且是自记录的。对于整数常量,您必须查看 API 文档以找出哪些值是有效的,并且没有什么可以阻止您使用无效值(或者更糟糕的是,完全不相关的整数常量)。使用 Enums,方法签名会直接告诉您哪些值是有效的(IDE 自动完成将起作用)并且不可能使用无效值。

不幸的是,“整数常量枚举”模式非常普遍,即使在 Java 标准 API(并从那里广泛复制)中也是如此,因为 Java 在 Java 5 之前没有枚举。

关于Java 枚举与静态常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2229297/

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