У меня ниже фрагмент кода
object SubClass extends MyTrait {
private[this] val a = 10
def main(args: Array[String]) {
println(a)
}
}
trait MyTrait {
protected val a = 5
}
И это дает следующую ошибку времени выполнения. Может кто-нибудь объяснить, почему мы не поймали это во время компиляции.
Исключение в потоке «main» java.lang.ClassFormatError: повторяющееся имя поля и подпись в файле класса SubClass $ в java.lang.ClassLoader.defineClass1 (собственный метод) в java.lang.ClassLoader.defineClassCond (ClassLoader.java:631) в java. lang.ClassLoader.defineClass (ClassLoader.java:615) в java.security.SecureClassLoader.defineClass (SecureClassLoader.java:141) в java.net.URLClassLoader.defineClass (URLClassLoader.javaLoader.javaLoader. $ 000 (URLClassLoader.java:58) в java.net.URLClassLoader $ 1.run (URLClassLoader.java:197) в java.security.AccessController.doPrivileged (собственный метод) в java.net.URLClassLoader.findClass (URLClassLoader. ) в java.lang.ClassLoader.loadClass (ClassLoader.java:306) в sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301) в java.lang.ClassLoader.loadClass (ClassLoader.java:247) в подклассе .main (TraitTest.scala)