`final_not_initialized`: final 변수는 반드시 초기화해야 해요
final_not_initialized: final 변수는 반드시 초기화해야 해요
Dart 분석기가 내는 final_not_initialized 진단에 대해 알아볼게요. final 필드나 변수가 초기화되어 있지 않으면 이 진단이 나와요.
본문
final 필드나 변수가 초기화되어 있지 않으면 분석기가 이 진단을 만들어요. final은 값을 한 번만 정할 수 있고, 그 값을 쓰기 전에 반드시 정해져 있어야 하니까요.
예시
다음 코드는 x에 초기화 구문이 없기 때문에 이 진단을 만들어요.
final int x;
자주 쓰는 해결 방법
변수나 정적(static) 필드라면 초기화 구문을 추가하면 돼요.
final int x = 0;
인스턴스 필드라면, 앞의 예시처럼 초기화 구문을 추가하거나, 모든 생성자에서 필드를 초기화하면 돼요. 초기화 형식 매개변수(initializing formal parameter)를 사용해서 필드를 초기화할 수 있어요.
class C {
final int x;
C(this.x);
}
생성자의 초기화 목록(initializer)을 사용해서 필드를 초기화할 수도 있어요.
class C {
final int x;
C(int y) : x = y * 2;
}