Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala,Casbah:编译错误。如何从外部库中恢复对象?_Scala_Casbah_Objectinstantiation - Fatal编程技术网

Scala,Casbah:编译错误。如何从外部库中恢复对象?

Scala,Casbah:编译错误。如何从外部库中恢复对象?,scala,casbah,objectinstantiation,Scala,Casbah,Objectinstantiation,我正在尝试使用Casbah toolkit编写将数据写入MongoDB的函数: import com.mongodb.casbah.WriteConcern import ... def saveRecord(rec: MongoDBObject) { mongoColl.insert(rec, WriteConcern) } Casbah将WriteConcern定义为Scala对象。我得到以下错误: No implicit view available f

我正在尝试使用Casbah toolkit编写将数据写入MongoDB的函数:

  import com.mongodb.casbah.WriteConcern
      import ...

  def saveRecord(rec: MongoDBObject) {
    mongoColl.insert(rec, WriteConcern)
  }
Casbah将WriteConcern定义为Scala对象。我得到以下错误:

No implicit view available from Object => com.mongodb.casbah.Imports.DBObject.  

not enough arguments for method insert: (implicit dbObjView: Object => com.mongodb.casbah.Imports.DBObject, implicit concern: com.mongodb.WriteConcern, implicit encoder: com.mongodb.casbah.Imports.DBEncoder)com.mongodb.casbah.Imports.WriteResult. Unspecified value parameter dbObjView.   
当我尝试简单地实例化WriteConcern时:

    val wc:WriteConcern = WriteConcern
我得到这个错误:

    not found: type WriteConcern
我在代码的第一行有
import com.mongodb.casbah.WriteConcern
,为什么找不到它?如何实例化WriteCon?
谢谢

为必要的
隐式
添加导入,并按如下方式插入:

import com.mongodb.casbah.Imports._
mongoColl.insert(rec)
关于无法实例化
WriteConcern
的问题,这是因为
com.mongodb
下有一个类,
com.mongodb.casbah
下有一个类似枚举的对象。这将有助于:

import com.mongodb.casbah.WriteConcern
val wc: com.mongodb.WriteConcern = WriteConcern.Normal

看起来
insert
是一个带有3个隐式参数的通用函数,
dbObjView、concern、encoder
——从错误来看,它看起来像
dbObjView:com.mongodb.casbah.Imports.DBObject
没有定义。唉,添加
import com.mongodb.casbah.Imports.DBObject
没有帮助。您可能需要定义该类型的
implicit val
,然后将其替换到
implicit
参数中。不可能。当我尝试
mongoColl.insert(rec)
时,我得到了以下错误:1)com.mongodb.casbah.commons.MongoDBObject=>com.mongodb.casbah.Imports.DBObject没有隐式视图可用。2) 没有足够的参数用于方法插入:(隐式dbObjView:com.mongodb.casbah.commons.MongoDBObject=>com.mongodb.casbah.Imports.DBObject,隐式关注点:com.mongodb.WriteConcern,隐式编码器:com.mongodb.casbah.Imports.DBEncoder)com.mongodb.casbah.Imports.WriteResult。未指定的值参数dbObjView。添加此导入:
import com.mongodb.casbah.Imports.\u
将有帮助。一旦我添加了它,它编译时就没有错误。