E160: Java Enum에 필요한 생성자 인자가 없어요
E160: Java Enum에 필요한 생성자 인자가 없어요 (Java Enum Parent Args)
클래스가 java.lang.Enum을 상속하면서 필요한 생성자 인자(name과 ordinal)를 제공하지 않을 때 발생하는 에러예요.
본문
java.lang.Enum의 생성자는 두 개의 인자를 요구해요: String 타입의 name과 Int 타입의 ordinal. java.lang.Enum을 수동으로 상속하는 건(-source:3.0-migration에서만 허용) 이 인자들을 반드시 제공해야 해요.
참고: 현대적인 Scala 3에서는 java.lang.Enum을 수동으로 상속하는 대신 enum 키워드를 쓰는 게 좋아요.
Example
final class MyEnum extends java.lang.Enum[MyEnum]
Error
-- [E160] Type Error: example.scala:1:12 ---------------------------------------
1 |final class MyEnum extends java.lang.Enum[MyEnum]
| ^
|not enough arguments for constructor Enum: (name: String, ordinal: Int): Enum[MyEnum]
Solution
// Use Scala 3 enum syntax instead (recommended)
enum MyEnum {
case Value1, Value2
}
더 알아보기
- Scala 3 enum 구문에 대한 자세한 내용은 Scala 3 Reference의 enum 문서를 참고하세요.