abstract_field_initializer 진단: abstract 필드에는 초기화식을 쓸 수 없어요

abstract_field_initializer 진단: abstract 필드에는 초기화식을 쓸 수 없어요

분석기가 내보내는 진단에는 이름이 있어요. abstract_field_initializerabstract 한정자가 붙은 필드에 초기화식(initializer)이 있을 때 Dart 분석기가 알려주는 컴파일 타임 진단이에요. 추상 필드는 값을 가질 수 없으니 초기화식을 붙이면 안 돼요.

출처: abstract_field_initializer

본문

설명

분석기는 abstract 한정자가 붙은 필드에 초기화식이 있을 때 이 진단을 만들어요.

예시

다음 코드는 fabstract로 표시되어 있으면서 초기화식을 가지고 있기 때문에 이 진단을 만들어요.

abstract class C {
  abstract int f = 0;
}

다음 코드는 fabstract로 표시되어 있으면서 생성자에 초기화식이 있기 때문에 이 진단을 만들어요.

abstract class C {
  abstract int f;

  C() : f = 0;
}

흔한 해결 방법

필드가 꼭 추상 필드여야 한다면, 초기화식을 제거해요.

abstract class C {
  abstract int f;
}

필드가 추상일 필요가 없다면, abstract 키워드를 제거해요.

abstract class C {
  int f = 0;
}

더 알아보기