Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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中的参数传递?_Scala_Types_Mongodb - Fatal编程技术网

如何将函数中的对象作为Scala中的参数传递?

如何将函数中的对象作为Scala中的参数传递?,scala,types,mongodb,Scala,Types,Mongodb,给定两个扩展类的对象: object PageDAO extends SalatDAO[Page, Long](collection=Config.getMongoDB("db_development")("pages")) object BookDAO extends SalatDAO[Book, Long](collection=Config.getMongoDB("db_development")("books")) 我想写一个以对象为参数的函数: def find[ID](s

给定两个扩展类的对象:

object PageDAO
  extends SalatDAO[Page, Long](collection=Config.getMongoDB("db_development")("pages"))

object BookDAO
  extends SalatDAO[Book, Long](collection=Config.getMongoDB("db_development")("books"))
我想写一个以对象为参数的函数:

def find[ID](salatDAO:SalatDAO[Product,ID]) = salatDAO.find(MongoDBObject()).limit(10)
trait SalatDAO[+A, B] // ...
               ^       <-- that plus does the trick

scala>find[Long](PageDAO)
:27:错误:类型不匹配;
找到:PageDAO.type(具有基础类型对象PageDAO)
必需:com.novus.salat.dao.SalatDAO[产品,长]

注意:页面只需遵循编译器的建议即可。如果你想
SalatDAO[A,]
成为
SalatDAO[B,]
的一个子类,当
A你试过编译器的技巧吗?我不明白编译器技巧的真正含义。将+ObjectType附加到何处?作为SalatDAO定义的一部分?如果我不能改变SalatDAO的特征怎么办?这是一个图书馆,不是我代码库的一部分。
trait SalatDAO[+A, B] // ...
               ^       <-- that plus does the trick
def find[P <: Product, I](salatDAO: SalatDAO[P,I]) = // ...