duplicate_constructor 진단: 생성자가 중복 정의됐어요

duplicate_constructor 진단: 생성자가 중복 정의됐어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. duplicate_constructor클래스가 이름 없는 생성자를 둘 이상 선언하거나, 같은 이름의 생성자를 둘 이상 선언할 때 분석기가 알려주는 컴파일 타임 진단이에요. 같은 시그니처의 생성자는 하나만 정의할 수 있어요.

출처: duplicate_constructor

본문

설명

분석기는 클래스가 이름 없는 생성자를 둘 이상 선언하거나, 같은 이름을 가진 생성자를 둘 이상 선언할 때 이 진단을 만들어요.

예시

다음 코드는 이름 없는 생성자가 두 번 선언돼 있기 때문에 이 진단이 나와요.

class C {
  C();

  C();
}

다음 코드는 m이라는 이름의 생성자가 두 번 선언돼 있기 때문에 이 진단이 나와요.

class C {
  C.m();

  C.m();
}

흔한 해결 방법

이름 없는 생성자가 여러 개 있고 전부 필요하다면, 생성자 전부에(혹은 하나만 빼고 전부에) 이름을 붙여 주세요.

class C {
  C();

  C.n();
}

이름 없는 생성자가 여러 개 있는데 하나만 빼고 전부 필요 없다면, 필요 없는 생성자를 제거해 주세요.

class C {
  C();
}

이름 있는 생성자가 여러 개 있고 전부 필요하다면, 하나만 빼고 전부 이름을 바꿔 주세요.

class C {
  C.m();

  C.n();
}

이름 있는 생성자가 여러 개 있는데 하나만 빼고 전부 필요 없다면, 필요 없는 생성자를 제거해 주세요.

class C {
  C.m();
}

더 알아보기