enum 은 final 필드만 선언할 수 있어요

enum 은 final 필드만 선언할 수 있어요

enum 안의 인스턴스 필드가 final 로 선언되지 않았을 때 분석기가 알려주는 진단이에요.

출처: non_final_field_in_enum

본문

enum 의 인스턴스 필드가 final 로 표시되지 않았을 때 이 진단이 발생해요.

아래 코드는 필드 f 가 final 필드가 아니기 때문에 이 진단이 나와요.

enum E {
  c;

  int f = 0;
}

고치는 방법

필드를 enum 에 반드시 둬야 한다면, 그 필드를 final 로 표시해 주면 돼요.

enum E {
  c;

  final int f = 0;
}

필드를 없앨 수 있다면, 그냥 제거해도 되고요.

enum E { c }

더 알아보기

  • enum 과 그 제약 사항에 대한 자세한 내용은 Dart 공식 문서의 enums 자료를 참고해요.