2013-08-08 11 views
4

나는 왜 컴파일 오류가 나타나지 않습니까?

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)

답변

관련 문제