여러 개의 리다이렉팅 생성자 호출

여러 개의 리다이렉팅 생성자 호출

Constructors can have only one 'this' redirection, at most.

이 진단은 생성자가 같은 클래스의 다른 생성자로 this 리다이렉션을 2개 이상 할 때 나타나요. 생성자 리다이렉션은 한 번만 할 수 있어요.

출처: multiple_redirecting_constructor_invocations

본문

이 애널라이저 진단은 어떤 생성자가 같은 클래스 안에 있는 다른 생성자로 리다이렉션 할 때(this를 사용해서) 대상이 2개 이상일 때 발생해요.

예시

다음 코드는 C의 이름 없는 생성자가 this.athis.b 양쪽으로 함께 리다이렉션 하고 있어서 이 진단이 나와요.

class C {
  C() : this.a(), this.b();
  C.a();
  C.b();
}

일반적인 해결 방법

리다이렉션을 하나만 남기고 나머지를 제거하면 돼요.

class C {
  C() : this.a();
  C.a();
  C.b();
}

더 알아보기