기본 생성자로 선언 없이 본문만 존재
기본 생성자로 선언 없이 본문만 존재 (primary_constructor_body_without_declaration)
이 문서는 Dart 분석기(analyzer)가 만들어 내는 primary_constructor_body_without_declaration 진단(diagnostic)에 대한 상세한 내용을 설명하는 문서예요. 클래스에 기본 생성자 본문(primary constructor body)이 있지만 기본 생성자를 선언하지 않았을 때 분석기가 이 진단을 알려 줘요. 어떤 상황에서 발생하고 어떻게 고치는지 함께 알아볼게요.
본문
진단 메시지
A primary constructor body requires a primary constructor declaration.
기본 생성자 본문에는 기본 생성자 선언이 필요해요.
설명
분석기는 클래스에 기본 생성자 본문이 있지만 기본 생성자를 선언하지 않았을 때 이 진단을 만들어 내요.
예시
다음 코드는 클래스 C에 기본 생성자 본문은 있지만 기본 생성자를 선언하지 않았기 때문에 이 진단을 만들어 내요.
class C {
this : assert(x > 0);
}
일반적인 해결 방법
해당 생성자가 기본 생성자로 쓰이려는 것이라면, 클래스 헤더에 매개변수 선언을 추가해 주세요.
class C(int x) {
this : assert(x > 0);
}
해당 생성자가 클래스 본문 안의 일반 생성자로 쓰이려는 것이라면, this를 클래스 이름이나 new로 바꾸고 생성자 선언에 매개변수를 적어 주세요.
class C {
new(int x) : assert(x > 0);
}
해당 생성자가 필요 없다면, 기본 생성자 본문을 제거해 주세요.
class C {}
더 알아보기
- Dart 분석기 진단 목록에서 다른 진단들도 함께 살펴보세요.
- Dart의 생성자 선언과 관련한 더 자세한 내용은 Dart 언어 투어 (Language tour)의 생성자(Constructors) 부분을 참고해요.