用通用类型创建单例对象的标准/正确方法

时间:2019-05-27 10:58:18

标签: scala

我正在尝试使用泛型类型创建单例对象。

该对象没有通用类型,因此以下内容不会编译。

object SomeObj {
  val dataStore = mutable.HashMap.empty[K, V]

  def setPair[K, V](key: K, value: V): Option[V] = dataStore.set(key, value)

  def getValue[K, V](key: K): Option[V] = dataStore.get(key)
}

代表某种数据存储的正确(标准方式)应该是其他程序组件共享的单个存储?

1 个答案:

答案 0 :(得分:0)

只是一个想法,也许会有所帮助

导入scala.collection.concurrent.TrieMap

object Main {

  class Dict[K, V] {
    lazy val dictionary = Dictionary(new TrieMap[K, V]())

    def getDictionary(): TrieMap[K, V] = this.dictionary.values
  }

  case class Dictionary[K, V](val values: TrieMap[K, V])

  def main(args: Array[String]): Unit = {
    val dictionary = new Dict[String, String]()
    dictionary.getDictionary().put("one", "word")
    dictionary.getDictionary().foreach(println)
  }
}