E200: Final Local Def
E200: Final Local Def
이 에러는 지역 정의(메서드나 블록 안의 정의)에 final 수식어를 사용할 때 발생해요.
본문
final 수식어는 클래스 멤버에게만 의미가 있어요. 서브클래스에서의 오버라이드를 막아 주기 때문이에요. 메서드 안의 지역 정의는 어차피 오버라이드될 수 없으므로, final은 아무 효과가 없고 허용되지 않아요.
예시 (Example)
def example(): Unit =
final val local = 42
에러 (Error)
-- [E200] Syntax Error: example.scala:2:8 --------------------------------------
2 | final val local = 42
| ^^^
| The final modifier is not allowed on local definitions
해결 방법 (Solution)
지역 정의에서 final 수식어를 제거해요.
def example(): Unit =
val local = 42
println(local)
인라인 상수가 필요하다면 inline val을 사용해요.
def example(): Unit =
inline val local = 42
println(local)