E160: Java Enum에 필요한 생성자 인자가 없어요

E160: Java Enum에 필요한 생성자 인자가 없어요 (Java Enum Parent Args)

클래스가 java.lang.Enum을 상속하면서 필요한 생성자 인자(name과 ordinal)를 제공하지 않을 때 발생하는 에러예요.

출처: Scala 3 Reference

본문

java.lang.Enum의 생성자는 두 개의 인자를 요구해요: String 타입의 nameInt 타입의 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 문서를 참고하세요.