필드는 선언할 때 초기화하자

필드는 선언할 때 초기화하자 (initialize_in_field_declaration)

필드를 초기화하는 방법은 여러 가지가 있는데, 그중에서도 필드를 선언할 때 바로 초기화할 수 있는데도 생성자의 초기화 리스트나 본문에서 초기화하고 있나요? 그럴 때 분석기가 이 린트(lint) 진단을 알려줘요.

출처: initialize_in_field_declaration

본문

설명

프라이머리 생성자(primary constructor)의 초기화 리스트나 본문에서 초기화되는 필드가, 사실은 필드 선언 자리에서 초기화할 수 있는 경우에 분석기가 이 진단을 만들어요.

예시

아래 코드는 필드 y를 프라이머리 생성자의 초기화 리스트에서 초기화하고 있는데, 이걸 필드 선언에서 초기화할 수 있기 때문에 이 진단이 나와요.

class C(int x) {
  this.y = x;

  int y;
}

흔한 해결 방법

필드를 선언할 때 초기화해 주면 돼요.

class C(int x) {
  int y = x;
}

더 알아보기