1

为什么要覆盖hashCode二进制不兼容的更改:

前:

trait Foo extends Product

后:

trait Foo extends Product {
  private[this] lazy val _hashCode = ScalaRunTime._hashCode(this)
  override def hashCode: Int = _hashCode
}

迁移经理 说:

[error]  * synthetic method Foo$$_hashCode()Int in trait Foo is present only in current version
[error]    filter with: ProblemFilters.exclude[ReversedMissingMethodProblem]("Foo.Foo$$_hashCode")

这真的是个问题吗?或者我可以通过此更改保持相同的次要版本吗?

4

1 回答 1

0

不是直接的答案,但可能private[this] lazy val完全避免:

trait Foo extends Product {
  override lazy val hashCode: Int = ScalaRunTime._hashCode(this)
}

在这里,米玛没有抱怨。

于 2016-10-16T22:59:18.490 回答