【问题标题】:How can I use a guava class (HashMultiset) from Scala?如何使用 Scala 的番石榴类(HashMultiset)?
【发布时间】:2015-01-31 18:26:26
【问题描述】:

以下是我的一些失败尝试:

import com.google.common.collect.HashMultiset

// 1. This does not work!
// val foo1:HashMultiset[Int] = HashMultiset[Int].create()

// 2. Neither does this!
// val foo2:HashMultiset[Int] = new HashMultiset[Int]()

// foo1.add(1)

在第一种情况下,它抱怨 HashMultiset 不是一个值。

在第二种情况下,它表示 HashMultiset[Int] 没有构造函数。

为了使用 Scala 中的这个番石榴类,我需要做一些额外的工作吗?

UPDATE0:我正在使用 Scala 2.11.2 和 Guava 18.0,以防万一!

【问题讨论】:

  • val foo1:HashMultiset[Int] = HashMultiset.create() 可能会起作用。
  • "无法解析符号创建" :-(
  • val foo1: HashMultiset[Int] = HashMultiset.create() 非常适合我。
  • 你用的是什么版本的scala和guava?
  • val foo1:HashMultiset[Int] = HashMultiset.create[Int]() 有效

标签: java scala guava


【解决方案1】:

HashMultiset[Int].create() 的问题在于,虽然HashMultiset 是一个带有类型参数的类,但create 是一个静态方法。调用静态方法时,不要在类名上使用类型参数。因此,HashMultiset.create() 应该足够了。我假设create 方法确实 有一个类型参数,所以写HashMultiset.create[Int]() 是有效的。

【讨论】:

    猜你喜欢
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    相关资源
    最近更新 更多