duplicate_constructor 진단: 생성자가 중복 정의됐어요
duplicate_constructor 진단: 생성자가 중복 정의됐어요
Dart 분석기가 내보내는 진단에는 이름이 있어요. 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();
}