视图边界已弃用;改为使用隐式参数
view bounds are deprecated; use an implicit parameter instead
我最近升级到 Scala 2.13,现在收到关于弃用的警告。我的函数如下所示:
implicit def convertGeneralResult[A <% ToResponseMarshallable, B <% ToResponseMarshallable](r: Either[A, B]) =
r.fold[ToResponseMarshallable](identity, identity)
弃用警告如下(我实际上有两个,每个类型参数一个 A/B):
view bounds are deprecated; use an implicit parameter instead.
example: instead of def f[A <% Int](a: A)
use def f[A](a: A)(implicit ev: A => Int)
虽然我不完全确定如何在我的案例中应用建议的修复。
这个问题有很多深度,但我只会提供一些参考,以防您想深入研究它,以及如何解决它。
早在 2013 年,在 Scala 2.11 中,您就可以在 Scala 中找到一个名为 deprecation warning for view bounds under -Xfuture. At the time this was implemented, but in case you didn't use the -Xfuture
option in SCALA COMPILER OPTIONS 的错误,而您并没有意识到这一点。
如您所见,2018 年 Deprecate view bounds without -Xfuture was opened, which was merged into Scala 2.13。
作为另一个参考,有一个类似的问题Scala 2.13.0 deprecates <%, but how do I get rid of this in a class definition。
现在开始你的问题。您需要做的就是删除 <%
用法,并将其替换为 implicits:
implicit def convertGeneralResult[A, B](r: Either[A, B])(implicit aToMarshallable: A => ToResponseMarshallable, bToMarshallable: B => ToResponseMarshallable) =
r.fold[ToResponseMarshallable](identity, identity)
我最近升级到 Scala 2.13,现在收到关于弃用的警告。我的函数如下所示:
implicit def convertGeneralResult[A <% ToResponseMarshallable, B <% ToResponseMarshallable](r: Either[A, B]) =
r.fold[ToResponseMarshallable](identity, identity)
弃用警告如下(我实际上有两个,每个类型参数一个 A/B):
view bounds are deprecated; use an implicit parameter instead.
example: instead ofdef f[A <% Int](a: A)
usedef f[A](a: A)(implicit ev: A => Int)
虽然我不完全确定如何在我的案例中应用建议的修复。
这个问题有很多深度,但我只会提供一些参考,以防您想深入研究它,以及如何解决它。
早在 2013 年,在 Scala 2.11 中,您就可以在 Scala 中找到一个名为 deprecation warning for view bounds under -Xfuture. At the time this was implemented, but in case you didn't use the -Xfuture
option in SCALA COMPILER OPTIONS 的错误,而您并没有意识到这一点。
如您所见,2018 年 Deprecate view bounds without -Xfuture was opened, which was merged into Scala 2.13。
作为另一个参考,有一个类似的问题Scala 2.13.0 deprecates <%, but how do I get rid of this in a class definition。
现在开始你的问题。您需要做的就是删除 <%
用法,并将其替换为 implicits:
implicit def convertGeneralResult[A, B](r: Either[A, B])(implicit aToMarshallable: A => ToResponseMarshallable, bToMarshallable: B => ToResponseMarshallable) =
r.fold[ToResponseMarshallable](identity, identity)