Outer
클래스와 그 Inner
클래스의 추상 정의가 주어진다면 구체 Inner1
클래스를 Outer1
특성으로 정의 된 인스턴스로 만들고 싶습니다. 이 Outer1.this.Inner_Tp과의 자기 형 Outer1.this.Inner1을 준수하지 않기 때문에 클래스 Inner1 인스턴스화 할 수 없습니다 : 오류가 "자체 형식의 주석은 내부 클래스의 인스턴스 생성을 방해합니다. 왜?
abstract class Outer {
type Inner_Tp <: Inner;
abstract class Inner {
self: Inner_Tp =>
}
}
trait Outer1 {
self: Outer =>
protected class Inner1 extends Inner {
self: Inner_Tp =>
}
def Inner1() = new Inner1()
}
는 스칼라 컴파일러는 조기 나에게 다음과 같은 오류 메시지를주고 컴파일을 종료 ". 왜?
결국 Inner1
클래스는 추상 문맥 내에서 Outer1
형질로 정의됩니다. 형질이 어떤 구체적인 클래스에 혼합 될 때까지 type Inner_Tp
의 정의를 연기하고 싶습니다.
Thx 얘들 아, Iulian Dragos의 대답을 대답으로 받아 들였지만, 똑같이 잘 설명해 주었다. 귀하의 회신에 +1하십시오. –
괜찮아요, 율리우스의 명성은 분명히 스칼라의 숙달을 반영하지 않으므로 많은 점수를 받아야합니다 :) –
:-) 감사합니다 얘들 아! –