常量类和枚举分别适用哪些场景?

2020-08-18 09:15:56 +08:00
 Vimax

哪些业务场景更推荐使用常量类

哪些业务场景更推荐使用枚举

3081 次点击
所在节点    Java
9 条回复
WhereverYouGo
2020-08-18 09:31:18 +08:00
1.当常量数量不确定时使用类常量;
2.当常量数量确定时使用枚举;
3.建议将类常量替换为接口常量;
4.建议将枚举替换为 ImmutableMap;
Vimax
2020-08-18 10:41:42 +08:00
@sweetsorrow211 非常感谢。
playboy0
2020-08-18 11:29:36 +08:00
@sweetsorrow211 effectivejava 说接口常量是不良习惯啊,接口只能用来定义类型
nl101531
2020-08-18 12:05:41 +08:00
枚举是强类型,你需要类型约束,就上枚举。如果只是记录到一个统一位置,那就用常量
talen666
2020-08-18 12:10:10 +08:00
@playboy0 但是在接口里,可以省略 3 个关键字,不是很舒服吗
SingeeKing
2020-08-18 12:30:16 +08:00
我也更喜欢把相关常量定义在接口,不过 sonarlint 直接禁止
SoloCompany
2020-08-18 12:32:50 +08:00
1. 概念上应该只有常量不存在常量类
2. 如果一个类上面定义的全是常量, 那么通常这个应该是一个枚举类
3. 枚举类上也可以定义常量, 关键还是看互相之间的逻辑关联
passerbytiny
2020-08-18 12:52:58 +08:00
用 WHITE 作为# FFFFFF 的别名,这是常量。

只能从 WHITE 、BLACK 中选一个,这是枚举。

此外,给枚举定义额外的值,这不是枚举的本意,是 Java 附加的特性,最好不要用,巨坑。
zhady009
2020-08-19 10:59:47 +08:00
@passerbytiny 哪里坑?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/699158

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX