Сопутствующий объект не может получить доступ к частной переменной в классе

Довольно странное поведение, исходящее от Scala REPL.

Хотя следующее компилируется без проблем:

class CompanionObjectTest {
    private val x = 3
}
object CompanionObjectTest {
    def testMethod(y:CompanionObjectTest) = y.x + 3
}

закрытая переменная, похоже, не доступна из сопутствующего объекта в REPL:

scala> class CompanionObjectTest {
     | 
     | private val x = 3;
     | }
defined class CompanionObjectTest

scala> object CompanionObjectTest {
     | 
     | def testMethod(y:CompanionObjectTest) = y.x + 3
     | }
<console>:9: error: value x in class CompanionObjectTest cannot be accessed in CompanionObjectTest
       def testMethod(y:CompanionObjectTest) = y.x + 3
                                                 ^

Почему это происходит?

8
задан Mechanical snail 22 July 2012 в 21:17
поделиться