代码之家  ›  专栏  ›  技术社区  ›  rasilvap

具有多个参数的开关箱

  •  -1
  • rasilvap  · 技术社区  · 7 年前

    我必须根据一些id进行配置,一些配置是相同的,因此我不喜欢为每个配置进行多个切换。

    我做了如下事情:

     switch (  sportId  ) 
        case [BASEBALL, BASKETBALL]
        //do some configuration
    

    如果我把每个箱子分开,开关工作得很好,问题是当我把棒球和篮球放在同一个箱子里时,因为配置是一样的,这不起作用。

    提前谢谢你。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Mike W    7 年前

    是否使用枚举?以下示例适用于我:

    enum Sport {
        BASEBALL, BASKETBALL, FOOTBALL, SWIMMING, HOCKEY
    }
    
    def set1 = EnumSet.of ( Sport.BASEBALL, Sport.BASKETBALL )
    def set2 = EnumSet.of ( Sport.FOOTBALL, Sport.SWIMMING, Sport.HOCKEY )
    
    def sportId = Sport.BASKETBALL
    
    switch ( sportId ) {
        case set1:
            println 'doing basebase & basketball stuff'
            break
        case set2:
            println 'doing football, swimming & hockey stuff'
            break
        default:
            println 'nothing'
    }