以下代码对我来说失败了:
object Message {
def parse[T](bsonDoc: BSONDocument): Try[T] = {
implicit val bsonHandler = Macros.handler[T]
bsonDoc.seeAsTry[T]
}
}
Message.parse[messages.ClientHello](data)
错误是:
No apply function found for T
implicit val bsonHandler = Macros.handler[T]
^
但是,如果我硬编码一个类型(我的案例类之一),那很好:
object Message {
def parse(bsonDoc: BSONDocument): Try[ClientHello] = {
implicit val bsonHandler = Macros.handler[ClientHello]
bsonDoc.seeAsTry[ClientHello]
}
}
Message.parse(data)
所以我认为这是使用泛型的问题。顺便说一句,我必须import messages.ClientHello
。如果我只是使用messages.ClientHello
,我会得到:
not found: value ClientHello
implicit val bsonHandler = Macros.handler[messages.ClientHello]
^
我怎样才能实现我想要做的事情,即使用一个方法来获取 BSON 文档并返回适当案例类的实例?