Scala 高级功能在从 java (Minecraft) 调用时具有 noMethodException



我正在使用Scala版本2.12.4和sbt版本1.0.4。

我正在使用 Scala 中的海绵 API 为 minecraft 编写一个插件,但每次启动插件时,我总是得到:

java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V
        at permissions.Permission.<init>(Permissions.scala:3) ~[Permission.class:0.1]
        at permissions.Permissions$.<init>(Permissions.scala:6) ~[Permissions$.class:0.1]
        at permissions.Permissions$.<clinit>(Permissions.scala) ~[Permissions$.class:0.1]

其中每个权限都是一个案例类:

case class Permission(node: String)
object Permissions {
  val examplePerm: Permission = Permission("pixelmcutils.permission.enable")

PS:尝试使用简单的for循环或任何隐式类时会出现类似的错误。

有人知道如何解决这个问题吗?

编辑:通过将 scala 标准库包含在 jar 中来解决。

如果要

创建没有 new 关键字的对象,则需要在配套对象(对象权限(中实现 apply 方法

object Permissions {
  val examplePerm: Permission = Permission("pixelmcutils.permission.enable")
  def apply(node: String): Permission = {
     new Permissions(node)
  }
}

最新更新