【发布时间】:2021-11-14 13:37:28
【问题描述】:
我有一个案例类:
case Context(tracker: Tracker)
我有一个带有 get def 的处理器类,它期望 Tracker 的隐式参数定义为:
class Processor(){
def get(id: String)(implicit tracker: Tracker): Unit
}
我有我的呼叫班:
class repo(process: Processor){
def get(id: String)(implicit ctx : Context): Unit{
process.get(id)
}
}
有没有一种简单的方法可以让我从上下文 -> Tracker 进行映射?我一直在尝试在“repo”的伴侣中使用隐式 def,但在调用 process.get(id) 时仍然看到 Tracker 的“没有可用的隐式 val”
【问题讨论】:
-
你控制
Context还是Tracker? -
我控制上下文。我可以是明确的,但如果有办法支持不明确,我宁愿这样做
-
@athomassi 将 Dmytro 建议的隐式转换放在
Context的伴随对象上,它应该可以按预期工作。 -
@LuisMiguelMejíaSuárez
Tracker的伴侣,而不是Context -
@LuisMiguelMejíaSuárez 谢谢,我没有注意到 OP 的评论。搜索到隐式转换的源类型,但
ifContextThenTracker不是隐式转换。
标签: scala implicit scala-2.12