필드는 선언할 때 초기화하자
필드는 선언할 때 초기화하자 (initialize_in_field_declaration)
필드를 초기화하는 방법은 여러 가지가 있는데, 그중에서도 필드를 선언할 때 바로 초기화할 수 있는데도 생성자의 초기화 리스트나 본문에서 초기화하고 있나요? 그럴 때 분석기가 이 린트(lint) 진단을 알려줘요.
본문
설명
프라이머리 생성자(primary constructor)의 초기화 리스트나 본문에서 초기화되는 필드가, 사실은 필드 선언 자리에서 초기화할 수 있는 경우에 분석기가 이 진단을 만들어요.
예시
아래 코드는 필드 y를 프라이머리 생성자의 초기화 리스트에서 초기화하고 있는데, 이걸 필드 선언에서 초기화할 수 있기 때문에 이 진단이 나와요.
class C(int x) {
this.y = x;
int y;
}
흔한 해결 방법
필드를 선언할 때 초기화해 주면 돼요.
class C(int x) {
int y = x;
}