unnecessary_const_in_enum_constructor: enum 생성자 안의 불필요한 `const` 키워드

unnecessary_const_in_enum_constructor: enum 생성자 안의 불필요한 const 키워드

enum의 생성자는 원래부터 암시적으로 const예요. 그런데 거기에 const 키워드를 또 붙이면 Analyzer가 이 진단을 알려줘요. 굳이 다시 적을 필요가 없거든요.

출처: unnecessary_const_in_enum_constructor

본문

이 진단은 const 키워드가 생성형 enum 생성자(generative enum constructor) 안에서 쓰일 때 발생해요. enum의 생성자는 암시적으로 const라서, 키워드를 명시할 필요가 없어요.

Examples

아래 코드는 enum의 주 생성자(primary constructor)에 const 키워드가 필요 없는데 붙어 있어서 이 진단이 발생해요.

enum const E(final int i) {
  a(1),
  b(2),
}

아래 코드는 enum 본문 안에 있는 생성자에 const 키워드가 필요 없는데 붙어 있어서 이 진단이 발생해요.

enum E {
  a(1),
  b(2);

  const E(this.i);

  final int i;
}

Common fixes

불필요한 키워드를 제거하면 돼요.

enum E(final int i) {
  a(1),
  b(2),
}
enum E {
  a(1),
  b(2);

  new(this.i);

  final int i;
}

더 알아보기