Vimax
V2EX  ›  Java

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

  •  1
     
  •   Vimax · Aug 18, 2020 · 4408 views
    This topic created in 2270 days ago, the information mentioned may be changed or developed.

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

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

    9 replies  •  2020-08-19 10:59:47 +08:00
    Masonnn
    Masonnn
    Aug 18, 2020❤️1
    1
    1.当常量数量不确定时使用类常量;
    2.当常量数量确定时使用枚举;
    3.建议将类常量替换为接口常量;
    4.建议将枚举替换为 ImmutableMap;
    Vimax
    Vimax
    OP
    Aug 18, 2020
    2
    @sweetsorrow211 非常感谢。
    playboy0
    playboy0
    Aug 18, 2020❤️1
    3
    @sweetsorrow211 effectivejava 说接口常量是不良习惯啊,接口只能用来定义类型
    nl101531
    nl101531
    Aug 18, 2020 via iPhone
    4
    枚举是强类型,你需要类型约束,就上枚举。如果只是记录到一个统一位置,那就用常量
    talen666
    talen666
    Aug 18, 2020
    5
    @playboy0 但是在接口里,可以省略 3 个关键字,不是很舒服吗
    SingeeKing
    SingeeKing
    Aug 18, 2020 via iPhone
    6
    我也更喜欢把相关常量定义在接口,不过 sonarlint 直接禁止
    SoloCompany
    SoloCompany
    Aug 18, 2020
    7
    1. 概念上应该只有常量不存在常量类
    2. 如果一个类上面定义的全是常量, 那么通常这个应该是一个枚举类
    3. 枚举类上也可以定义常量, 关键还是看互相之间的逻辑关联
    passerbytiny
    passerbytiny
    Aug 18, 2020 via Android
    8
    用 WHITE 作为# FFFFFF 的别名,这是常量。

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

    此外,给枚举定义额外的值,这不是枚举的本意,是 Java 附加的特性,最好不要用,巨坑。
    zhady009
    zhady009
    Aug 19, 2020
    9
    @passerbytiny 哪里坑?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2939 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 11:58 · PVG 19:58 · LAX 03:58 · JFK 06:58
    ♥ Do have faith in what you're doing.