scala - 为什么不给出编译错误?

标签 scala object runtime traits

我有下面的一段代码

object SubClass extends MyTrait {
  private[this] val a = 10

  def main(args: Array[String]) {
      println(a)
  }

}

trait MyTrait {
  protected val a = 5

}

它给出了以下运行时错误。有人可以解释为什么我们没有在编译时捕获它。

Exception in thread "main" java.lang.ClassFormatError: Duplicate field name&signature in class file SubClass$ at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at SubClass.main(TraitTest.scala)

最佳答案

因为软件有bug?

https://issues.scala-lang.org/browse/SI-7475

那将是我的猜测。

相关票证近期备受关注:

https://issues.scala-lang.org/browse/SI-2568

关于scala - 为什么不给出编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18126053/

相关文章:

ruby-on-rails - Rails 4 : accepts_nested_attributes_for and mass assignment

android - 错误错误:执行编译编译失败

java - 我有什么方法可以覆盖 Java 中的系统属性吗?

scala - Spark 2.2 非法模式组件 : XXX java. lang.IllegalArgumentException:非法模式组件:XXX

scala - 为什么在 actor 中创建一个 actor 是危险的

javascript - 如何检查一个 json 对象数组中的 id 是否存在于另一个嵌套的 json 对象数组中?

javascript - 如何在数组中的数组的第二个值之后排序?

Java 运行时相当于使用 javax Processor/google @AutoService 进行注释处理

scala - 将数据帧写入 HDFS 时出现 NumberFormatException 错误

java - 弗林克 : Broadcasted Operator chaining