【问题标题】:Iterate over Guava ImmutableList in Scala在 Scala 中迭代 Guava ImmutableList
【发布时间】:2015-10-03 01:17:40
【问题描述】:

我在迭代 Scala 中 Guava 的 ImmutableList 时遇到问题。我与他们合作的唯一原因是因为我正在使用使用 Guava API 的 Java 编写的代码。但是,编译器似乎不喜欢它。这是我的代码:

for (blockData: IBlockData <- block.P.a) {
  *insert actions here*
}

编译器错误:

Error:(24, 43) value filter is not a member of com.google.common.collect.ImmutableList[net.minecraft.server.v1_8_R3.IBlockData]
for (blockData: IBlockData <- block.P.a) {
                      ^

非常感谢任何帮助。 谢谢!

【问题讨论】:

    标签: scala guava


    【解决方案1】:

    要使用Scalas for 表达式,对象必须实现flatMapfilter,而guava 集合没有。 ScalaJava 转换器捆绑在一起,这应该可以工作:

    import collection.JavaConverters._
    for (blockData: IBlockData <- block.P.a.asScala) {
      *insert actions here*
    }
    

    【讨论】:

    • 谢谢!应该考虑使用JavaConverters。我认为JavaConversions 会以某种方式工作:P
    • @TheReturningVoid 是的,JavaConversions 应该也可以。 JavaConverters 是首选。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多