【发布时间】:2021-01-16 09:54:12
【问题描述】:
我在隐式类中有一段代码-
implicit class Path(bSONValue: BSONValue) {
def |<[S, T <:{def value:S}] = {
bSONValue.asInstanceOf[T].value
}
}
问题是如果我想在 BSONValue 之后调用 |< 方法,我需要使用 . 调用。
例如
(doc/"_id").|<[String,BSONString]
问题是没有. scala 会引发错误,因为它不允许使用中缀表示法的类型参数方法。所以我总是必须用() 包裹doc/"_id" 部分。
他们是否可以在没有. 的情况下使用类型参数方法,例如
doc/"_id"|<[String,BSONString]
【问题讨论】:
-
我建议您重新考虑您的 API。它不仅难以阅读,而且我猜您不想指定
String或BSONString,而只想指定其中之一。 -
@LuisMiguelMejíaSuárez,好建议!
标签: scala dsl implicit structural-typing