abstract_field_initializer 진단: abstract 필드에는 초기화식을 쓸 수 없어요
abstract_field_initializer 진단: abstract 필드에는 초기화식을 쓸 수 없어요
분석기가 내보내는 진단에는 이름이 있어요. abstract_field_initializer는 abstract 한정자가 붙은 필드에 초기화식(initializer)이 있을 때 Dart 분석기가 알려주는 컴파일 타임 진단이에요. 추상 필드는 값을 가질 수 없으니 초기화식을 붙이면 안 돼요.
본문
설명
분석기는 abstract 한정자가 붙은 필드에 초기화식이 있을 때 이 진단을 만들어요.
예시
다음 코드는 f가 abstract로 표시되어 있으면서 초기화식을 가지고 있기 때문에 이 진단을 만들어요.
abstract class C {
abstract int f = 0;
}
다음 코드는 f가 abstract로 표시되어 있으면서 생성자에 초기화식이 있기 때문에 이 진단을 만들어요.
abstract class C {
abstract int f;
C() : f = 0;
}
흔한 해결 방법
필드가 꼭 추상 필드여야 한다면, 초기화식을 제거해요.
abstract class C {
abstract int f;
}
필드가 추상일 필요가 없다면, abstract 키워드를 제거해요.
abstract class C {
int f = 0;
}