매개변수화 타입이 인자를 갖지 않음
매개변수화 타입이 인자를 갖지 않음 (Parameterized Type Lacks Arguments)
매개변수화된 타입을 상속하면서 필요한 생성자 인자를 넘기지 않았을 때 나오던 에러예요.
본문
참고: 이 에러는 Scala 3.2.2에서 더 구체적인 에러 메시지인
E171: Missing Argument로 대체되었어요.
매개변수화된 타입을 상속하면서 필요한 생성자 인자를 넘기지 않으면 이 에러가 발생했어요.
예시
trait Foo(x: Int)
val foo = new Foo {}
에러 메시지
-- [E054] Type Error: example.scala:3:14 ---------------------------------------
3 |val foo = new Foo {}
| ^^^
| Parameterized trait Foo lacks argument list
|-----------------------------------------------------------------------------
| Explanation (enabled by `-explain`)
|- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| The trait Foo is declared with non-implicit parameters, you may not leave
| out the parameter list when extending it.
-----------------------------------------------------------------------------
설명
클래스나 트레이트가 생성자 매개변수를 선언하면, 그것을 상속할 때 그 매개변수에 대한 값을 반드시 넘겨야 해요. 이 에러는 Foo가 Int 인자를 요구하는데 아무것도 넘기지 않아서 발생했어요.
해결책은 필요한 인자를 넘겨 주는 거예요.
trait Foo(x: Int)
val foo = new Foo(42) {}