gpt4 book ai didi

scala - 关于编译期间未处理的类型类的警告

转载 作者:行者123 更新时间:2023-12-02 04:04:42 25 4
gpt4 key购买 nike

给出以下最少代码:

package object MyPackage {
case class Pimp(private val i: Int) extends AnyVal
}

SBT (0.13.8) 提示:

[warn] sbt-api: Unhandled type class scala.reflect.internal.Types$MethodType : ($this: myPackage.package.Pimp)Int

我的构建文件大致是这样的:

Project("sbtissue", file("sbtissue")).settings(scalaVersion := "2.11.6")

将源文件中的相关行更改为:

class Pimp(private val i: Int) extends AnyVal

或者:

case class Pimp(i: Int) extends AnyVal

编译时不会发出警告。我该怎么做才能防止出现此警告?

相关:https://groups.google.com/forum/#!topic/simple-build-tool/KWdg4HfYqMk

最佳答案

我认为你已经找到了一个合理的边缘情况,如果可能有点利基的话。

我建议删除 private 因为它并不真正符合案例类的想法,而且,考虑到生成的 unapply 的存在,它无论如何也不会隐藏该值:

Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40).
Type in expressions to have them evaluated.
Type :help for more information.

scala> case class Pimp(private val i: Int) extends AnyVal
defined class Pimp

scala> val p1 = Pimp(1)
p1: Pimp = Pimp(1)

scala> p1.i
<console>:11: error: value i is not a member of Pimp
p1.i
^

scala> val Pimp(n) = p1
n: Int = 1

关于scala - 关于编译期间未处理的类型类的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29720289/

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