이 방법으로 작동하지 않아야합니다. import Inner._
을 사용하는 것은 일관된 동작입니다.
Java의 정적 멤버와 비슷한 동작을 얻으려면 일반적으로 컴패니언 개체가 필요합니다. 당신은 클래스의 팩토리로서 동반자 객체를 사용할 수 있습니다
object Outer {
object Inner {
def print(inner: Inner) = inner.B // compiles!
}
class Inner {
private val B = "B"
}
}
: 스칼라 방법은 동반자 클래스의 개인/보호 된 멤버들 그것에서 액세스 할 수 있다는 장점과 함께, 싱글 톤 객체에 떨어져 모든 정적 멤버를 이동하는 것입니다 개인 생성자 :
scala> object Outer {
|
| object Inner {
| def newInstance = new Inner()
| }
| class Inner private() {
| private val B = "B"
| }
| }
defined module Outer
scala> Outer.Inner.newInstance
res1: Outer.Inner = [email protected]
scala> new Outer.Inner
<console>:7: error: constructor Inner cannot be accessed in object $iw
new Outer.Inner
^
나는이 문제가 새 이민자에게 얼마나 중요한지 보여주는 * 다시 * (잊어 버린 후) * 여기에 왔습니다. 나는 '외부'가 그 질문에 아무런 역할을하지 않는다고 생각한다; 그것 없이도 꽤 똑같습니다. 이 질문에 감사드립니다! – akauppi