【问题标题】:Create a Map.Entry instance in Groovy在 Groovy 中创建 Map.Entry 实例
【发布时间】:2021-11-16 22:54:11
【问题描述】:

在 Groovy 中创建 Map.Entry 实例最惯用的方法是什么?到目前为止,我提出的两种方法都依赖于 JDK 类型/方法:

def entry = ['foo', 'bar'] as AbstractMap.SimpleEntry
def entry = [foo: 'bar'].entrySet()[0]

是否有使用 Groovy 特定语法或 GDK 方法的 Groovier 方式?

【问题讨论】:

  • 创建Map.Entry 后,您想对它做什么?这个问题的答案将影响创建它的最佳方法(或由Map 自己创建)是什么。
  • 为什么不只是def entry = Map.entry('foo', 'bar')Map.entry, q.v.
  • @JeffScottBrown 我有一个静态方法的 Spock 测试,该方法采用 Map.Entry 实例并返回一个布尔值。我正在尝试制作一个可读的“expect:”块,以便我可以以表格格式列出不同的键、值和预期返回值
  • @DavidConrad 我喜欢——我不知道 Java 11 方法

标签: java groovy syntax


【解决方案1】:

在 Java 9 中,为 Map 添加了一个方便的方法来创建条目:Map.entry:

def entry = Map.entry('foo', 'bar')

【讨论】:

    【解决方案2】:

    在 Java 8 中,我将 Pair.of 用于轻量级条目实例:

    @Grab('org.apache.commons:commons-lang3:3.11')
    import org.apache.commons.lang3.tuple.Pair
    
    def map = ['foo','bar','baz'].collectEntries {
      Pair.of(it, it.length())
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 2012-01-11
      • 1970-01-01
      相关资源
      最近更新 更多