【问题标题】:Play scala template with google Multimap使用 google Multimap 播放 scala 模板
【发布时间】:2023-04-06 06:31:01
【问题描述】:

我有一个来自 com.google.common.collect.Multimap 的 Multimap 对象。 如何在我的 Play scala 模板中遍历这个 Multimap?

@if(!googleMultimapObject.isEmpty()){

为了……

}

谢谢。

【问题讨论】:

    标签: scala templates playframework-2.0 multimap


    【解决方案1】:

    首先在模板顶部导入 JavaConverters(即第二行,而不是签名)

    @import scala.collection.JavaConverters._
    

    这将为您的 java 集合提供 asScala 方法。通过隐式。

    现在你可以这样做了:

    @for(entry <- googleMultimapObject.entries.asScala) {
      <p>@entry.getKey()</p>
      <p>@entry.getValue()</p>
    }
    

    或者,要列出每个键的值,您可以这样做:

    @for((key, values) <- googleMultimapObject.asMap.asScala) {
      <p>key: @key</p>
      <p>
      @for (value <- values.asScala) {
        <span>@value</span>
      }
      </p>
    }
    

    这里有一个快捷方式来解包键和值:.asMap.asScala 给了我们一个 scala 映射。当你迭代一个 scala 映射时,你会得到 (KeyType, ValueType) 的元组。上面的语法将元组解包成(key, values)

    【讨论】:

    • 如果我想在 Java 中先迭代键,然后再迭代像这样的值,我该怎么办: for (Map.Entry> entry : listOfJobByModel.asMap( ).entrySet()) {Collection jCollection = entry.getValue(); }
    • @user3669225 我更新了我的答案——这就是你的想法吗? (顺便说一句,你应该删除你的答案,最好在评论中要求澄清。欢迎来到 Stack Overflow!)
    猜你喜欢
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    相关资源
    最近更新 更多