加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 编译期间有关未处理类型类的警告

发布时间:2020-12-16 18:36:21 所属栏目:安全 来源:网络整理
导读:给出以下最小代码: 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 我的构建
给出以下最小代码:

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

解决方法

我认为你找到了一个合法的边缘案例,如果可能是一个小利基.

我建议删除私有,因为它不太适合case类的想法,而且,如果存在生成的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读