Một hành vi khá lạ lùng đến từ Scala REPL.Đối tượng đồng hành không thể truy cập biến riêng tư trên lớp
Mặc dù biên dịch sau đây mà không có một vấn đề:
class CompanionObjectTest {
private val x = 3
}
object CompanionObjectTest {
def testMethod(y:CompanionObjectTest) = y.x + 3
}
biến tin dường như không thể truy cập từ các đối tượng đồng hành trong 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
^
Tại sao đó xảy ra?