gpt4 book ai didi

scala - Scala 中的隐式转换问题

转载 作者:行者123 更新时间:2023-12-01 07:09:06 25 4
gpt4 key购买 nike

我正在改进 Querydsl 中的 Scala 支持,但遇到了以下问题。这是说明问题的代码片段:

// framework types  
class RelationalPath[T]
class RelationalPathAdapter[T, R <: RelationalPath[T]](p: R) { def someMethod = {} }

// domain types
class User
class QUser extends RelationalPath[User]

implicit def toAdapter[T, R <: RelationalPath[T]](p: R) = new RelationalPathAdapter[T,R](p)

val path = new QUser()

toAdapter(path).someMethod // DOESN'T COMPILE

path.someMethod // DOESN'T COMPILE

除了类型参数之外,如何在隐式转换中匹配类型。我可以单独匹配,但不能同时匹配。

最佳答案

在此特定情况下,以下更改有效:

implicit def toAdapter[T, R <: RelationalPath[T]](p: RelationalPath[T] with R) = 
new RelationalPathAdapter[T,R](p)

关于scala - Scala 中的隐式转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8196258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com