형식 멤버를 인스턴스화 할 수없는 이유에 대한 간단한 질문은 무엇입니까? 이는 예를 들어 예를 취스칼라 유형 멤버를 인스턴스화하면 오류가 발생합니다.
abstract class SimpleApplicationLoader {
type MyComponents <: BuiltInComponentsFromContext
def load(context: Context) = {
new MyComponents(context).application
}
}
class SiteServiceApplicationLoader extends SimpleApplicationLoader {
type MyComponents = SiteApplicationComponents
}
class SiteApplicationComponents(val context: Context) extends BuiltInComponentsFromContext(context) {
....
}
는 SimpleApplicationLoader는 입력 파라미터를 MyComponents 정의 (상부 BuiltinComponentsFromContext결합). 로드 메서드에서 형식 매개 변수 MyComponents이 인스턴스화됩니다. SiteServiceApplicationLoader은 _SiteApplicationComponents에 대한 MyComponents 유형을 대체합니다. 그냥 궁금해서 왜 형 멤버이
Error:(13, 9) class type required but SimpleApplicationLoader.this.MyComponents found
new MyComponents(context).application
을 인스턴스화 할 수 없습니다 :
어쨌든, 컴파일러는 다음과 같은 오류를 준다? 해결 방법은 무엇입니까?
감사합니다.
설명 :'SimpleApplicationLoader'에 추상 메소드'newMyComponents' ('MyComponents'를 반환)를 추가 할 것을 제안합니다. 이 메소드는'SiteServiceApplicationLoader'에서 구현 될 것입니다. 이 올바른지? 이 의미는 첫 번째 코드 예제에서 100 % 명확하지 않기 때문입니다. –