Vimax
V2EX  ›  Java

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

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

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

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

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

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

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